爲什麼結果不包括「2013年10月14日」Oracle與之間的日期?
select *
from table t
where t.f_date between to_date('2013-10-20', 'yyyy-mm-dd') and
to_date('2013-10-14', 'yyyy-mm-dd')
爲什麼結果不包括「2013年10月14日」Oracle與之間的日期?
select *
from table t
where t.f_date between to_date('2013-10-20', 'yyyy-mm-dd') and
to_date('2013-10-14', 'yyyy-mm-dd')
是否d.f_date包括時間分量?如果是這樣,between
將返回的唯一記錄將是那些時間爲的人,確切地說是 00:00:00。 2013-10-14所有其他人都會更大。
當比較日期時,假設沒有時間部分的日期有00:00:00時間分量
當我第二次嘗試時,它是正確的! – xjliao
這可以通過在其他的答案中提到的時間成分問題引起的,但你也將需要改變你們之間的最早的日期,否則它永遠不會返回任何東西。
例如
SELECT *
FROM dual
WHERE SYSDATE BETWEEN SYSDATE AND SYSDATE + 1;
將返回1分的記錄,但
SELECT *
FROM dual
WHERE SYSDATE BETWEEN SYSDATE + 1 AND SYSDATE;
不會。
他們可能會這樣做。你確定你的日期'2013-10-14'沒有時間分量嗎?例如,如果您的日期實際上是'2013-10-14 14:15',則不會被選中。而一些Oracle客戶端工具將默認不顯示時間組件(例如,SQL Developer不顯示時間組件「開箱即用」,儘管它[可以配置爲](http://stackoverflow.com/questions/8134493/how-can-i-set-a-custom-date-time-format-in-oracle-sql-developer)。 –