SQL 中日期使用 BETWEEN 時的邊界值範圍

在 ORACLE 中要判斷某個時間點在一個時間段中間可以使用 BETWEEN ,語句如下

SELECT *
FROM TEMP_TABLE
WHERE TARGET_DATE BETWEEN to_date('2020-01-01', 'yyyy-mm-dd') AND to_date('2020-02-01', 'yyyy-mm-dd')

在進行時間比較的時候 ORACLE 會自動將輸入的兩個日期格式化爲 2020-01-01 00:00:00 以及 2020-02-01 00:00:00 , 然後判斷目標時間是不是在這兩個時間之中 。


這種情況下我們需要了解的是這個時間判斷的邊界值是多少 ,我們生成四個時間點 ,分別是 2019-12-31 23:59:59 ,2020-01-01 00:00:00 ,2020-01-31 23:59:59, 2020-02-01 00:00:00


運行上面的語句 ,查詢出來的結果有兩條 ,分別是 2020-01-01 00:00:00 以及 2020-01-31 23:59:59 。
也就是說 ,在使用 BETWEEN 進行時間範圍計算時,起始時間可以等於目標時間 ,但是結束時間必須大於目標時間 ,特別是要取日期或者月份的時候

TARGET_DATE BETWEEN to_date('2020-01', 'yyyy-mm') AND to_date('2020-02', 'yyyy-mm')

像這個語句 取到的是 1 月份的全部時間 ,但是不包括二月份 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章