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()
函数中的参数的目的是什么?
答案 0 :(得分:1)
您问题的具体答案是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
答案 1 :(得分:0)