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
这就是考虑不周,经验不足啊。

