db2如何计算时间差?

truthsun22 2010-09-15 02:38:38
需求是这样的,每天凌晨我都要去从数据库查一下,找出记录时间和系统当前时间相差24小时的记录。
我目前这样写的,select * FROM HK_CDA A WHERE (DAYS(CURRENT DATE) - DAYS((SELECT CREATE_TIME FROM HK_CDA B WHERE A.ID=B.ID)))>=1
但是这样写无法精确到分秒,只能精确到天
请问大家有什么好办法?刚开始用DB2,不太了解~
...全文
887 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
humanity 2010-10-09
  • 打赏
  • 举报
回复
如果是精确确定相差 1 天的话,就不要考虑 24 小时,另外不要用相差,而是和一个参照刻度比较会更快点。

create table V1 (IDX integer, CRT_DT timestamp);

delete from V1;
insert into V1 values
(1, CURRENT_TIMESTAMP - 2 day),
(2, CURRENT_TIMESTAMP - 3 day),
(3, CURRENT_TIMESTAMP - 4 day),
(4, CURRENT_TIMESTAMP),
(5, CURRENT_TIMESTAMP + 1 day)

select IDX, CRT_DT from V1 where CRT_DT < timestamp(CURRENT_TIMESTAMP - 1 day)
;
chidi17 2010-10-01
  • 打赏
  • 举报
回复
timestampdiff
liyan93834183 2010-09-18
  • 打赏
  • 举报
回复
不都是按照30天算的,按照实际每个的天数计算的
Mr_Bean 2010-09-15
  • 打赏
  • 举报
回复
回答,会的~~
前面有人提出过 days计算天数是准的
truthsun22 2010-09-15
  • 打赏
  • 举报
回复
谢谢楼上,我这样写的select * FROM HK_CDA A WHERE timestampdiff (4, current timestamp - CREATE_TIME)>1440
参数4代表查询结果以分钟来算,这样倒是可以,但是timestampdiff函数说是每个月以30天计算,不知会不会出现错误
Mr_Bean 2010-09-15
  • 打赏
  • 举报
回复
timestampdiff 你查下吧 可以到秒的

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧