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

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

第1个回答  2012-12-17
下面是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代表字符日期格式。
第2个回答  2012-12-17
这样改一下

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

本回答被提问者采纳