将 Varchar2 转换为时间

问题描述 投票:0回答:1

我想将 VARCHAR2 列转换为时间相关数据类型。 例如,来自

153312 变成 15:33:12

我尝试过

to_timestamp(column, 'hh24:mi:ss') as time_column

,但它给了我结果:

01.11.23 15:33:12,0000000

还有其他解决办法吗?

time casting oracle-sqldeveloper varchar2
1个回答
0
投票

Oracle 没有时间数据类型。您正在转换为日期,因此您所看到的内容是预期的; 来自文档(适用于日期,但也适用于时间戳):

如果指定不带时间部分的日期值,则默认时间为午夜。如果您指定不带日期的日期值,则默认日期是当月的第一天。

由于您只提供了时间部分,因此默认为当月的第一天,2023-11-01。

然后,您的客户端或应用程序将时间戳值显示为字符串,并根据其设置或 NLS_TIMESTAMP_FORMAT 会话参数进行格式化。

如果您只想查看时间部分,请将其转换回字符串,仅包含这些组件。

根据您拥有的值的范围,您也可以将其作为字符串操作以插入分隔符冒号 - 但例如,您可能需要先用零填充左侧。

您可以转换为间隔数据类型,这可能是比字符串更好的存储值的方法,但比日期或时间戳更难使用和格式化。

© www.soinside.com 2019 - 2024. All rights reserved.