我正在使用SQL Server 2005
我试图通过DatePart(ww,date)功能获得一周
我的代码
SELECT datepart(ww,'2012-01-08 00:00:00')
返回2
但我想......
返回1
根据IS0-8601以及此website
中的此表2012年 第01周从2012-1-2到2012-1-8 ...
我错了吗?
SET DATEFIRST 1有任何技巧,我尝试没有成功。
感谢您的时间
我无法使用ISO_WEEK,因为SQL Server 2005无法正常工作
答案 0 :(得分:1)
使用ISO_WEEK
:
SELECT datepart(ISO_WEEK,'2012-01-08 00:00:00')
您可以在MSDN上了解更多相关信息。
修改强>
我没有意识到ISO_WEEK
在SQL Server 2005中不可用。由于它基于一周的星期四,现在问题转移到找到给定日期的星期四:
DECLARE @Date date = '2012-01-08'
DECLARE @Thursday date = DATEADD(DAY, 3-(DATEPART(WEEKDAY, @Date) + @@DATEFIRST - 2) % 7, @Date)
SELECT (DATEPART(DAYOFYEAR,@Thursday) - 1) / 7 +1