無論出于何種原因,我都無法在我的組織中使用 SQL 中的作業日函式,因此我需要一些解決方法的幫助。我有一個 SQL 代碼,它應該查詢前一個作業日。所以這就是我們目前使用的:
select p.businessDate, p.accountNumber (more fields, but unecessary)
from Table p,
where p.businessDate = dateadd(DAY, -1, today())
問題是在星期一,這個查詢從星期日提取資料,當我們在星期五需要它時。有沒有辦法繞過使用 dateadd(WEEKDAY, -1, today())?此代碼每天周一至周五自動運行。
uj5u.com熱心網友回復:
我在這里找到了一些我認為可以幫助你的東西。
如果可以使用,DATENAME則可以檢查當前日期的名稱是否為'Monday'. 如果是,那么代替dateadd(DAY, -1, today())你可以做dateadd(DAY, -3, today())。
uj5u.com熱心網友回復:
既然你說你可以使用DATEPART,case 陳述句檢查當天是否是星期一,如果是,它減去 3 天得到星期五,否則它減去 1 天,DATEPART回傳一個從 1 開始的數值表示星期日,然后移動到 7 表示星期六,因此星期一是我們檢查值 2 的關注日期,這是SQL Server語法。
select p.businessDate, p.accountNumber (more fields, but unecessary)
from Table p,
where businessDate = CASE WHEN DATEPART(WEEKDAY, GETDATE()) = 2
THEN DATEADD(DAY, -3, GETDATE())
ELSE DATEADD(DAY, -1, GETDATE()) END
DATEPART檔案 - datepart-transact-sql
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/316344.html
上一篇:基于案例的軟體構造教程第四章
