sql - 如何比较确切的小时/分钟/秒的时间戳?
问题描述
我必须列:
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
我想比较小时/分钟和秒以查看它们是否匹配。我可以忽略年/月和日。有没有办法我可以做到这一点?例如,在上面,我知道前两条记录匹配,因为两列中的小时、分钟和秒数相同,但最后一条记录不匹配。
解决方案
您可以使用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
)
(这给出了假和真)
推荐阅读
- nosql - 如果基于 LSMT 的数据库中的红黑树中的数据永远不会变得太大怎么办。读者永远无法获取数据吗?
- java - OAuth2 和 PKCE - 代码验证器无效
- google-cloud-sql - GCP 的 CloudSQL - 重新创建现有的只读副本
- ocaml - 取消引用指针 OCaml 时匹配总是成功
- python - 在 TFRS 中使用 NDCG@5 度量进行训练和验证
- css - 有没有办法在 CSS 中制作自定义边框?
- node.js - 在 express api 中使用节点集群总是有益的吗?
- java - 如何处理 MissingKotlinParameterException
- vue.js - 多选组件标签作为编号
- ffmpeg - 将带有时间线编辑(启用)的 ffmpeg 视频 delogo 过滤器应用于多个区域和多个时间帧不起作用