DATEPART(ww,Date) 与 SET DATEFIRST
DATEPART(ww,Date) with SET DATEFIRST
我正在使用 SQL Server 2005
我正在尝试使用 DatePart(ww,date) 函数获取星期
我的代码
SELECT datepart(ww,'2012-01-08 00:00:00')
Return 2
但是我想要...
Return 1
根据 IS0-8601 和此 table 来自此 website
2012 年
Week-01 从2012-1-2到2012-1-8
...
我错了吗?
SET DATEFIRST 1有什么技巧,我试了没有成功。
感谢您的宝贵时间
我不能使用 ISO_WEEK,因为 SQL Server 2005 不工作
使用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
我正在使用 SQL Server 2005
我正在尝试使用 DatePart(ww,date) 函数获取星期
我的代码
SELECT datepart(ww,'2012-01-08 00:00:00')
Return 2
但是我想要...
Return 1
根据 IS0-8601 和此 table 来自此 website
2012 年 Week-01 从2012-1-2到2012-1-8 ...
我错了吗?
SET DATEFIRST 1有什么技巧,我试了没有成功。
感谢您的宝贵时间
我不能使用 ISO_WEEK,因为 SQL Server 2005 不工作
使用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