【发布时间】:2011-01-20 00:38:18
【问题描述】:
如何从 T-SQL 中的日期获取周数?
【问题讨论】:
-
根据什么周编号模式?
-
什么星期编号系统? ISO?
-
您使用的是什么版本的 SQL Server?如果您想要 ISO 周数,这可能会有所不同
如何从 T-SQL 中的日期获取周数?
【问题讨论】:
看看DATEPART
SELECT DATEPART(wk, GETDATE())
【讨论】:
最好使用以下内容:
选择 DATEPART(ISO_WEEK, getDate())
当你有一个第 53 周的年份和 2015 年的情况一样,它会给出不可靠的结果。 (当然是 2008 R2)
选择 DATEPART(WK, '01/03/2016')
在第 53 周左右给出可变结果。当 1 月 3 日之后的一周运行时,它产生值 1。当现在在同一日期运行时,它给出值 2。
【讨论】:
ISO_WEEK 假设一周从星期一开始,并在一年中遇到的第一个星期一开始计数 (1)。 WK 假设一周从星期日开始,并在元旦开始计数 (1),无论是哪一天。
或者像这样使用 DATEDIFF:DATEDIFF(wk,GETDATE(),GETDATE()+7) 来查找两天之间的周数
【讨论】: