SELECT TOP 100 *
FROM FactSalesDetail
WHERE TradingDate >= DATEADD(ww, -6, (Select MAX([TradingDate]) From FactSalesDetail))
ORDER BY TradingDate
誰能建議我如何將上述 WHERE 子句從從我的事實表中的 Max Date 檢索過去 6 周的資料轉換為過去 6 周到上周六的資料?
那么從今天開始,1 月 1 日星期六,然后再過 6 周?
uj5u.com熱心網友回復:
使用當前作業日可以獲得上周六。
如果您將@@DATEFIRST 帶入等式,則它將不依賴于 DATEFIRST 設定。
SELECT TOP 100 *
FROM FactSalesDetail
WHERE TradingDate >= CONVERT(DATE, DATEADD(WEEK, -6, DATEADD(DAY, -(@@DATEFIRST DATEPART(WEEKDAY,GETDATE()))%7,
GETDATE())))
AND TradingDate <= CONVERT(DATE, DATEADD(DAY, -(@@DATEFIRST DATEPART(WEEKDAY,GETDATE()))%7,
GETDATE()))
ORDER BY TradingDate
日期范圍的測驗代碼段
SET DATEFIRST 7; SELECT datename(weekday, date_now) AS weekday_now, date_now , datename(weekday, date1) AS wd1, date1 , datename(weekday, date2) AS wd2, date2 FROM ( SELECT CAST(GETDATE() AS DATE) AS date_now , CONVERT(DATE, DATEADD(WEEK, -6, DATEADD(DAY, -(@@DATEFIRST DATEPART(WEEKDAY,GETDATE()))%7, GETDATE()))) AS date1 , CONVERT(DATE, DATEADD(DAY, -(@@DATEFIRST DATEPART(WEEKDAY,GETDATE()))%7, GETDATE())) AS date2 ) q
| weekday_now | date_now | wd1 | 日期1 | wd2 | 日期2 |
|---|---|---|---|---|---|
| 周二 | 2022-01-04 | 周六 | 2021-11-20 | 周六 | 2022-01-01 |
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/405454.html
標籤:
