你好,我在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
部分,我添加了它。