Sql-Server
動態設置日期
我想
dynamically
在查詢的 where 子句中設置一個日期,但我不知道該怎麼做。該查詢正在計算輸入日期 >= X 年 8 月 1 日的行數。
動態部分是如何計算年份。
如果查詢在 1 月 1 日之前執行
entered on
,則 where 子句中的日期將為currentyear/08/01
。如果查詢從 1 月 1 日到 7 月 31 日執行
entered on
,則 where 子句中的日期將為previousyear/08/01
。有誰知道如何做到這一點?
為此,您不需要動態 SQL。像這樣的東西應該工作:
WHERE date_column >= DATEFROMPARTS( YEAR(GETDATE()) - CASE WHEN MONTH(GETDATE()) >= 8 THEN 0 ELSE 1 END, 8, 1 )
嘗試使用 CASE 表達式,因為您可以指定限定符,如您所描述的。
就像是…
Code :
Select Count (*) CASE when date >= 1st August year X THEN enteredondate = currentyear/08/01 ELSE enteredondate= previousyear/08/01 End from DateTable