我有一個包含 2 列 ID (int) 和 CreateDate (DateTime) 型別的 SQL 表。無論我選擇一月、二月、三月等,我都想過濾給定月份每個星期四的所有 ID...
uj5u.com熱心網友回復:
如果我理解正確,DATEPART函式可能會幫助您做到這一點。
您可以weekday在從 DateTime 回傳作業日的第一個引數中使用,如果您想比較其他資訊DATEPART可能會幫助您比較。
SELECT *
FROM T
WHERE
DATEPART ( weekday , CreateDate ) = 5
uj5u.com熱心網友回復:
給定月份的每個星期四
首先過濾月/年日期范圍,以減少結果數量并保持可搜索性。然后使用datePart識別所選范圍內的星期四。
db<>小提琴
-- Assumes SET DATEFIRST 7
SELECT *
FROM YourTable
WHERE CreateDate >= '2022-01-01'
AND CreateDate < '2022-02-01'
AND DatePart(dw, CreateDate) = 5
請注意, Datepart(dw) 的結果可能因您的 @@DATEFIRST 設定而異。查詢的確定性版本將是:
SELECT *
FROM YourTable
WHERE CreateDate >= '2022-01-01'
AND CreateDate < '2022-02-01'
AND ((DatePart(dw, CreateDate) @@DATEFIRST-1) % 7 1) = 5
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/428847.html
