因爲你沒有在你的標準語句的TO_DATE部分指定的小時,分鍾或秒,甲骨文默認爲00:00:00,所以你的陳述基本上說要尋找值爲start_date is between "30-APR-2013 00:00:00 AM" AND "06-MAY-2013 00:00:00 AM"
。由於「06-MAY-2013 6:59:00 AM」超出此範圍,因此不會在結果中返回。這裏有幾種方法可以解決這個問題:
指定TO_DATE語句中的小時數,分鐘數和秒數,以包含日期範圍後端的整個一天。
SELECT DISTINCT vname,start_date
FROM my_dates
WHERE start_date BETWEEN TO_DATE('30-APR-2013','DD-MON-YYYY')
AND TO_DATE('06-MAY-2013 11:59:59 PM','DD-MON-YYYY HH12:MI:SS AM')
或者你可以做一個計算,以23小時59分59秒添加到第二個日期值做上述同樣的事情。
SELECT DISTINCT vname,start_date
FROM my_dates
WHERE start_date BETWEEN TO_DATE('30-APR-2013','DD-MON-YYYY')
AND TO_DATE('06-MAY-2013','DD-MON-YYYY')+1-(1/24/60/60)
希望有幫助。
我的眼球告訴我你的日期格式圖片與你使用的日期格式不匹配。 – 2013-05-07 08:18:55
@DavidAldridge即使我從查詢中刪除HH12:MI:SS AM,我也無法得到最後一行 – user75ponic 2013-05-07 18:57:05