我正在比较两个不同数据库引擎之间的时间戳列,当没有条目时,我需要将以YYY-MM-DD HH:mm:ss格式存储的时间戳列检索到YYY-MM-DD HH:mm:ss.SSS,,其中SSS为000。
我可以使用配置单元选择查询来执行上述操作吗?
发布于 2019-12-30 17:44:41
拆分时间戳以获得毫秒部分,如果根本没有毫秒部分或毫秒部分小于3位,则使用rpad添加零。
演示:
with your_data as (
select stack(3, '2019-11-02 20:18:00.123',
'2019-11-02 20:18:00.12',
'2019-11-02 20:18:00'
) as ts
)
select concat(split(ts,'\\.')[0],'.',rpad(nvl(split(ts,'\\.')[1],''),3,0))
from your_data d
;结果:
2019-11-02 20:18:00.123
2019-11-02 20:18:00.120
2019-11-02 20:18:00.000发布于 2019-12-30 22:14:23
鉴于这两种格式(及其长度)都有严格的定义,您可以使用这个简单的逻辑:
left(concat(ts,'.000'),19)我不能检查确切的语法,但基本上你可以附加额外的零,如果你不需要它们,就把它们去掉。
https://stackoverflow.com/questions/59528084
复制相似问题