一、日期格式
在進行日期範圍查詢之前,我們需要先了解SQLServer中日期的格式,常用的日期格式有以下幾種:
-- yyyy-mm-dd SELECT CONVERT(VARCHAR(10), GETDATE(), 120) -- 2021-09-13 -- yyyy-mm-dd hh:mi:ss SELECT CONVERT(VARCHAR(19), GETDATE(), 120) -- 2021-09-13 15:41:30 -- mm/dd/yyyy hh:mi:ss AM (PM) SELECT CONVERT(VARCHAR(30), GETDATE(), 100) -- Sep 13 2021 3:41PM
其中,常用的日期格式是yyyy-mm-dd和yyyy-mm-dd hh:mi:ss,這兩種格式可以滿足大部分的日期需求。
二、查詢特定日期範圍
如果我們需要查詢一個特定的日期範圍內的數據,可以通過在WHERE子句中使用BETWEEN和AND關鍵字進行查詢,下面是一個示例:
SELECT * FROM table_name WHERE date_column BETWEEN '2021-09-01' AND '2021-09-30';
其中,table_name是需要查詢的表名,date_column是表中存儲日期的列名,’2021-09-01’是查詢開始日期,’2021-09-30’是查詢結束日期。
三、查詢當前日期範圍
如果我們需要查詢當前日期範圍內的數據,可以使用GETDATE()函數獲取當前日期,下面是一個示例:
SELECT * FROM table_name WHERE date_column BETWEEN CONVERT(VARCHAR(10), GETDATE(), 120) AND CONVERT(VARCHAR(10), GETDATE(), 120);
其中,table_name是需要查詢的表名,date_column是表中存儲日期的列名,CONVERT(VARCHAR(10), GETDATE(), 120)會將當前日期轉換為yyyy-mm-dd格式。
四、查詢本周範圍
如果我們需要查詢本周範圍內的數據,可以使用DATEPART函數獲取當前日期是本周的第幾天,並計算出本周的開始日期和結束日期,下面是一個示例:
SELECT * FROM table_name WHERE date_column BETWEEN CONVERT(VARCHAR(10), DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 0), 120) AND CONVERT(VARCHAR(10), DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 6), 120);
其中,table_name是需要查詢的表名,date_column是表中存儲日期的列名,DATEADD和DATEDIFF函數用於計算本周的開始和結束日期,CONVERT(VARCHAR(10), …)會將日期轉換為yyyy-mm-dd格式。
五、查詢本月範圍
如果我們需要查詢本月範圍內的數據,可以使用DATEPART函數獲取當前日期的月份,並計算出本月的開始日期和結束日期,下面是一個示例:
SELECT * FROM table_name WHERE date_column BETWEEN CONVERT(VARCHAR(7), GETDATE(), 120) + '-01' AND CONVERT(VARCHAR(10), DATEADD(DAY, -1, DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()) + 1, 0)), 120);
其中,table_name是需要查詢的表名,date_column是表中存儲日期的列名,CONVERT(VARCHAR(7), GETDATE(), 120) + ‘-01’可以獲取本月的開始日期,DATEADD和DATEDIFF函數用於計算本月的結束日期。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247312.html