SQL 日期转换获取"Invalid Number"



你好,我在SQL ORCLE中有以下日期

2020-02-07 13:21:56.478000

我想要以下格式:

27-JAN-20 03.00.00.000000000 AM

我四处搜索,找到了to_char和to_date,并想出了这个

(TO_TIMESTAMP(TO_CHAR('2020-02-07 13:21:56.478000','DD-MON-YY HH:MI:SS.FF'))

但是我一直得到"无效号码",而oracle没有告诉我它在哪里。有什么想法吗?

使用以下方法

to_char(
timestamp '2020-02-07 13:21:56.478000',
'DD-MON-YY HH:MI:SS.FF'
) 

问题是to_char()期望一个类似日期的数据类型作为参数,而你给它一个字符串。

如果要处理文本字符串,则使用日期文本语法:

to_char(
timestamp '2020-02-07 13:21:56.478000',
'DD-MON-YY HH:MI:SS.FF AM'
) 

如果您正在处理字符串列,则可以先将其转换为时间戳,to_timestamp()

to_char(
to_timestamp(my_string_col, 'YYYY-MM-DD HH24:MI:SS.FF'),
'DD-MON-YY HH:MI:SS.FF AM'
)

最后,如果您正在处理timestamp列,则可以直接使用to_char()

to_char(my_date_col, 'DD-MON-YY HH:MI:SS.FF AM')

注意:您的原始格式修改器缺少AM/PM部分,我添加了它。

相关内容

最新更新