伊斯兰周数
Islamic Week number
我们是一家总部位于英国的公司,我们在迪拜也有另一家分公司。
我一定是遗漏了一些简单的东西,但我如何从 SQL 服务器 (2008 R2) 获取伊斯兰周号 - 服务器位于英格兰,所以我们不能做太多改变。
我创建了以下测试查询来演示该问题(名为 "WhatWeWant" 的列,其中我从周数中减去 -1 是为了演示此示例中所需的答案,而不是修复)
DATEFIRST only affects the ww column and not the ISO_WEEK column.
SELECT
[xdate]
, DATEPART(ww, xdate) as ww
, DATEPART(ISO_Week, xdate) as iso_week
, DATEPART(ww, xdate) -1 as whatWeWant
FROM [test].[dbo].[testing]
结果:
xdate ww iso_week whatWeWant
2016-11-18 00:00:00.0000000 47 46 46
2016-11-19 00:00:00.0000000 47 46 46
2016-11-20 00:00:00.0000000 48 46 47
2016-11-21 00:00:00.0000000 48 47 47
2016-11-22 00:00:00.0000000 48 47 47
2016-11-23 00:00:00.0000000 48 47 47
2016-11-24 00:00:00.0000000 48 47 47
2016-11-25 00:00:00.0000000 48 47 47
2016-11-26 00:00:00.0000000 48 47 47
2016-11-27 00:00:00.0000000 49 47 48
2016-11-28 00:00:00.0000000 49 48 48
2016-11-29 00:00:00.0000000 49 48 48
试试这个:
SELECT
[xdate]
, DATEPART(ww, xdate) as ww
, DATEPART(ISO_Week, xdate) as iso_week
, DATEPART(ww, xdate) -1 as whatWeWant
, DATEPART(ISO_WEEK, DATEADD(DAY,1,xdate)) as whatIPropose
FROM [test].[dbo].[testing]
无论 DATEFIRST 设置如何,它似乎都产生了预期的结果。
我们是一家总部位于英国的公司,我们在迪拜也有另一家分公司。 我一定是遗漏了一些简单的东西,但我如何从 SQL 服务器 (2008 R2) 获取伊斯兰周号 - 服务器位于英格兰,所以我们不能做太多改变。
我创建了以下测试查询来演示该问题(名为 "WhatWeWant" 的列,其中我从周数中减去 -1 是为了演示此示例中所需的答案,而不是修复)
DATEFIRST only affects the ww column and not the ISO_WEEK column.
SELECT
[xdate]
, DATEPART(ww, xdate) as ww
, DATEPART(ISO_Week, xdate) as iso_week
, DATEPART(ww, xdate) -1 as whatWeWant
FROM [test].[dbo].[testing]
结果:
xdate ww iso_week whatWeWant 2016-11-18 00:00:00.0000000 47 46 46 2016-11-19 00:00:00.0000000 47 46 46 2016-11-20 00:00:00.0000000 48 46 47 2016-11-21 00:00:00.0000000 48 47 47 2016-11-22 00:00:00.0000000 48 47 47 2016-11-23 00:00:00.0000000 48 47 47 2016-11-24 00:00:00.0000000 48 47 47 2016-11-25 00:00:00.0000000 48 47 47 2016-11-26 00:00:00.0000000 48 47 47 2016-11-27 00:00:00.0000000 49 47 48 2016-11-28 00:00:00.0000000 49 48 48 2016-11-29 00:00:00.0000000 49 48 48
试试这个:
SELECT
[xdate]
, DATEPART(ww, xdate) as ww
, DATEPART(ISO_Week, xdate) as iso_week
, DATEPART(ww, xdate) -1 as whatWeWant
, DATEPART(ISO_WEEK, DATEADD(DAY,1,xdate)) as whatIPropose
FROM [test].[dbo].[testing]
无论 DATEFIRST 设置如何,它似乎都产生了预期的结果。