Oracle 查询两个日期之间的天数,参考SQL如下:
SELECT ROUND (TO_DATE( ' 2013/11/15 ' , ' YYYY/MM/DD ' ) - SYSDATE) FROM DUAL
这样写存在什么问题呢?
假如当前的时间(SYSDATE)是: 2013/11/14 11:30 ,查询的结果是 1 。
如果当前的时间过了12点,如: 2013/11/14 12:10 ,那么查询的结果会是 0 。
习惯上,即使到了晚上 2013/11/14 23:59,离 2013/11/15 应该也是 1 天。
所以正确的SQL参考如下:
SELECT ROUND (TO_DATE( ' 2013/11/15 ' , ' YYYY/MM/DD ' ) - TRUNC(SYSDATE, ' DD ' )) FROM DUAL
这就是考虑不周,经验不足啊。