我想計算要排除的天數,其中給定日期的作業日是周五、周六和周日。
我正在使用以下查詢來計算給定日期基于作業日排除的天數。
SELECT 2 * ((DATEPART(WEEKDAY, '2021-10-29') 5 - 2) / 5) - DATEPART(WEEKDAY, '2021-10-29') / 7
SELECT 2 * ((DATEPART(WEEKDAY, '2021-10-30') 5 - 2) / 5) - DATEPART(WEEKDAY, '2021-10-30') / 7
SELECT 2 * ((DATEPART(WEEKDAY, '2021-10-31') 5 - 2) / 5) - DATEPART(WEEKDAY, '2021-10-31') / 7
上述實際結果應分別為2,1,0。但我得到 2,3,0。誰能建議如何獲得它
謝謝
uj5u.com熱心網友回復:
一種方法是直接檢查周五、周六和周日并賦值:
select case when DATEPART(WEEKDAY, '2021-10-29') = 6 then 2
when DATEPART(WEEKDAY, '2021-10-29') = 7 then 1
when DATEPART(WEEKDAY, '2021-10-29') = 1 then 0
else 0 end as days_to_Excluede
但如果這不是您的要求,那么您可以等待其他一些答案
uj5u.com熱心網友回復:
如果我理解正確,你想數到星期天的天數嗎?如果我錯了糾正我。如果是這種情況,我認為這樣做可以,否則您能否再解釋一下:
SELECT 7 - CASE WHEN DATEPART(WEEKDAY, '2021-10-29') = 1 THEN 7 ELSE DATEPART(WEEKDAY, '2021-10-29') - 1 END
SELECT 7 - CASE WHEN DATEPART(WEEKDAY, '2021-10-30') = 1 THEN 7 ELSE DATEPART(WEEKDAY, '2021-10-30') - 1 END
SELECT 7 - CASE WHEN DATEPART(WEEKDAY, '2021-10-31') = 1 THEN 7 ELSE DATEPART(WEEKDAY, '2021-10-31') - 1 END
編輯:因為你不想在這里使用 CASE 它是:
SELECT 7 - DATEPART(WEEKDAY, DATEADD(dd, -1,'2021-10-29'))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/343703.html
標籤:查询语句
下一篇:SQL將Where子句引入新列
