DECLARE @date DATETIME= GETDATE()
SELECT DATEDIFF(WEEK,
DATEADD(WEEK,
DATEDIFF(WEEK, 0,
DATEADD(MONTH, DATEDIFF(MONTH, 0, @date), 0)),
0), @date - 1) + 1
0作爲datediff()
函數中的參數的用途是什麼?SQL中每月的一週
DECLARE @date DATETIME= GETDATE()
SELECT DATEDIFF(WEEK,
DATEADD(WEEK,
DATEDIFF(WEEK, 0,
DATEADD(MONTH, DATEDIFF(MONTH, 0, @date), 0)),
0), @date - 1) + 1
0作爲datediff()
函數中的參數的用途是什麼?SQL中每月的一週
具體回答你的問題是,0
只是一種方式來獲得月初:
dateadd(month, datediff(month, 0, @date), 0)
這是一個方法,在SQL Server中要做到這一點,因爲它沒有提供「日期截斷」功能。我更喜歡:
dateadd(day, 1 - day(@date), @date)
(雖然無可否認,這是一丁點更復雜,如果@date
有時間部分)
然而,一個更簡單的方法來做到這一點是:
select (day(@date) - 1)/7) as week_of_month
這是舊fashione d在月初獲取日期的方法。 –
之前先要求在谷歌搜索 – Vitorlui
另一個SQL問題與一個叫喊標題?這是什麼?! – Biffen