我有以下SQL,它应该在明天上午6:30之前返回所有数据。 一直工作到今天(2016年6月30日)。
SELECT TO_CHAR(TRUK.THEDATE,'DD/MM/YY HH24:MI') DAT
FROM TRUK
WHERE TO_CHAR(TRUK.THEDATE,'DD/MM/YY HH24:MI') <= TO_CHAR(TO_DATE(sysdate + 1) + 6.5/24,'DD/MM/YY HH24:MI')
ORDER BY TRUK.THEDATE
问题 今天返回的数据不包括6月30日的数据,我知道这些数据只存在于7月1日。当我注释掉where子句时,会返回所有数据,但当然这包括第二天早上6点半之后我不想要返回的数据。
我徒劳地寻找答案,并非常感谢对此提供一些帮助。如何以不同的方式编写where子句来防止这种情况?
我的期望结果是指数据库中的所有记录都会在第二天上午6:30返回。
欢呼声
答案 0 :(得分:3)
您正在比较字符串,但您应该比较日期。
将where子句调整为此并且它将起作用:
WHERE truk.thedate <= trunc(sysdate) + to_dsinterval('1 06:30:00')