ORACLE 11g SQL日期查询不返回今天的数据

时间:2016-06-30 09:19:09

标签: oracle plsql oracle11g

我有以下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返回。

欢呼声

1 个答案:

答案 0 :(得分:3)

您正在比较字符串,但您应该比较日期。

将where子句调整为此并且它将起作用:

WHERE truk.thedate <= trunc(sysdate) + to_dsinterval('1 06:30:00')