首页 > 解决方案 > 如何比较确切的小时/分钟/秒的时间戳?

问题描述

我必须列:

BEFORE_TIME & AFTER_TIME
2021-09-02 09:41:00.000 || 2021-09-09 09:41:00.000
2021-09-03 09:09:07.000 || 2021-09-10 09:09:07.000
2021-09-03 13:45:48.000 || 2021-09-10 15:45:48.000

我想比较小时/分钟和秒以查看它们是否匹配。我可以忽略年/月和日。有没有办法我可以做到这一点?例如,在上面,我知道前两条记录匹配,因为两列中的小时、分钟和秒数相同,但最后一条记录不匹配。

标签: sqlsnowflake-cloud-data-platform

解决方案


您可以使用trunc()将时间戳截断为秒,并转换::time为删除日期部分:

select a=b
    , trunc(a::time, 'second') = trunc(b::time, 'second')
from (
    select '2021-01-01 10:10:10.313'::timestamp a
        ,  '2021-08-01 10:10:10.444'::timestamp b
)

(这给出了假和真)


推荐阅读