我正在查找一個sql腳本來計算星期六作爲一週的第一天的星期六。SQL服務器:獲取星期六作爲星期六的第一天的星期幾
實施例:
2017-04-01 : Week 1
2017-04-02 : Week 1
(.................)
2017-04-08 : Week 2
感謝。
我正在查找一個sql腳本來計算星期六作爲一週的第一天的星期六。SQL服務器:獲取星期六作爲星期六的第一天的星期幾
實施例:
2017-04-01 : Week 1
2017-04-02 : Week 1
(.................)
2017-04-08 : Week 2
感謝。
試試這個,我認爲這是你需要的全部:
set datefirst 6
declare @dt datetime
set @dt = '2017-03-04'
select datepart(wk, @dt) - datepart(wk,dateadd(m, DATEDIFF(M, 0, @dt), 0)) + 1 as weekOfMonth
您可以使用DATEFIRST
和DATEADD
。將DATEFIRST
設置爲值6
表示星期六。
試試這個(與你的datetime
替換列yourDate
):
SET DATEFIRST 6
select datediff(week, dateadd(month, 0, yourDate), yourDate) + 1
您可以使用此查詢
DECLARE @currentdate date = '2017-04-01'
select floor((datepart(day,@currentdate) - 1)/7) + 1 AS WeekOfMonth
--- @currentdate date = '2017-04-01' -- return 1
--- @currentdate date = '2017-04-07' -- return 1
--- @currentdate date = '2017-04-08' -- return 2
請使用以下查詢:
SELECT 'Week '+ CAST(FLOOR((datepart(day,@YourDate) - 1)/7) + 1 AS VARCHAR(10)) Currentweek
感謝@Douek爲您的答案,但此句法向我顯示此錯誤消息:「數據類型datetime參數對dateadd函數的第二個參數無效。」 –
@Koby Douek,交換yourDate和0在dateadd() –
@MustaphaAitFadel請看更新的答案 –