求助:sql语句表中的记录时间两列相减大于二十小时的语句

select wonum,REPORTDATE,HDIFDELAY from WORKORDER where HDIFDELAY=1 and (HDIFDELAY-HDCOMPTIME) >24 这个该怎么改HDIFDELAY、HDCOMPTIME都是记录时间的列
最新回答
心痛亦已

2025-03-30 06:45:32

下面是Oracle的SQL语句。
如果HDIFDELAY、HDCOMPTIME都是日期类型,可以直接写成:
(HDIFDELAY-HDCOMPTIME)*24>24 相当于两个日期相差一天多。
如果HDIFDELAY、HDCOMPTIME都是字符类型,可以直接写成:
(to_date(HDIFDELAY,'yyyy-mm-dd')-to_date(HDCOMPTIME,'yyyy-mm-dd'))*24
yyyy-mm-dd代表字符日期格式。
怪味

2025-03-30 03:26:18

这样改一下

select wonum,REPORTDATE,HDIFDELAY
from WORKORDER
where HDIFDELAY=1 and datediff (hour,HDIFDELAY,HDCOMPTIME) >24
追问
datediff标示符无效。。。
追答
你是什麼数据库?
追问
oracle...
追答
这样试一下

ROUND(TO_NUMBER(HDIFDELAY - HDCOMPTIME) * 24)
追问
数据类型不一致,应为number却获得data