首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在执行select查询时将YYY-MM-DD HH:mm:ss中的时间戳转换为配置单元中的YYY-MM-DD HH:mm:ss.SSS?

如何在执行select查询时将YYY-MM-DD HH:mm:ss中的时间戳转换为配置单元中的YYY-MM-DD HH:mm:ss.SSS?
EN

Stack Overflow用户
提问于 2019-12-30 16:58:29
回答 2查看 76关注 0票数 1

我正在比较两个不同数据库引擎之间的时间戳列,当没有条目时,我需要将以YYY-MM-DD HH:mm:ss格式存储的时间戳列检索到YYY-MM-DD HH:mm:ss.SSS,,其中SSS000

我可以使用配置单元选择查询来执行上述操作吗?

EN

回答 2

Stack Overflow用户

发布于 2019-12-30 17:44:41

拆分时间戳以获得毫秒部分,如果根本没有毫秒部分或毫秒部分小于3位,则使用rpad添加零。

演示:

代码语言:javascript
复制
 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 
 ;

结果:

代码语言:javascript
复制
2019-11-02 20:18:00.123
2019-11-02 20:18:00.120
2019-11-02 20:18:00.000
票数 1
EN

Stack Overflow用户

发布于 2019-12-30 22:14:23

鉴于这两种格式(及其长度)都有严格的定义,您可以使用这个简单的逻辑:

代码语言:javascript
复制
left(concat(ts,'.000'),19)

我不能检查确切的语法,但基本上你可以附加额外的零,如果你不需要它们,就把它们去掉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59528084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档