【问题标题】:Oracle SQL read timestamp from value in format YYYYMMDDThhmmssOracle SQL 从 YYYYMMDDThhmmss 格式的值中读取时间戳
【发布时间】:2016-08-23 02:23:04
【问题描述】:

我正在尝试使用 Oracle SQL 运行以下查询

select to_timestamp('2015/06/20T00:00:00','yyyy/mm/dd hh24:mi.ss.ff') from dual;

但是这给了我以下错误

ORA-01858:在数字所在的位置发现了一个非数字字符 预计

如果我从查询中删除“T”,它运行正常并返回预期值,如下所示。

select to_timestamp('2015/06/20 00:00:00','yyyy/mm/dd hh24:mi.ss.ff') from dual;

我的问题是,有没有办法将包含 T 的值转换为时间戳,或者格式总是不正确?

如果您需要更多信息,请告诉我,我会尽力提供,谢谢您的帮助。

【问题讨论】:

标签: sql oracle timestamp


【解决方案1】:

只需将其他字符包含在双引号内:

select to_timestamp('2015/06/20T00:00:00','yyyy/mm/dd"T"hh24:mi.ss.ff') from dual

【讨论】:

【解决方案2】:

你可以使用replace():

select to_timestamp(replace('2015/06/20T00:00:00', 'T', ' '),
                    'yyyy/mm/dd hh24:mi.ss.ff'))
from dual;

【讨论】:

    猜你喜欢
    • 2015-12-14
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 2015-05-12
    • 2015-07-18
    • 2018-12-18
    • 1970-01-01
    相关资源
    最近更新 更多