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

2021-10-05 15:17:04 字數 762 閱讀 3743

在 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 月份的全部時間 ,但是不包括二月份 。​

Sql語句日期的Between和and

最近做了乙個有獎答題程式,後台有根據日期查詢使用者的答題數量,可是遇到了問題,資料庫中的內容為 idname date1張三 2009 4 5 09 13 182李四 2009 4 6 15 48 363王五 2007 4 7 20 47 58 sql查詢語句為select from table w...

sql中日期操作

1.看到乙個帖子,裡面日期操作函式挺多,方法技巧也挺好,學習了。declare s date select s 2012 01 01 定義開始日期 select cast datepart yy,dateadd dd,number,s as varchar 4 年 cast datepart mm,...

sql中日期型轉換

sql日期轉換 select convert varchar,getdate 120 2004 09 12 11 06 08 select replace replace replace convert varchar,getdate 120 20040912110608 select conver...