ISO周vs SQL Server周
好的,所以我有一个报告进行了本周与上周的比较,我们的客户注意到他们的数据“很笨拙”。经过进一步调查,我们发现按照ISO标准,它不能正确运行数周。我将此脚本作为测试用例运行。 SET DATEFIRST 1 SELECT DATEPART(WEEK, '3/26/13') , DATEPART(WEEK, '3/27/12') , DATEPART(WEEK, '3/20/12') , DATEPART(WEEK, '1/2/12') SELECT DATEPART(ISO_WEEK, '3/26/13') , DATEPART(ISO_WEEK, '3/27/12') , DATEPART(ISO_WEEK, '3/20/12') , DATEPART(ISO_WEEK, '1/2/12') 运行时,我得到了这些结果。 我认为这很特殊,因此我做了一些进一步的挖掘,发现SQL Server将1月1日视为一年的第一周,而ISO将1月的第一个星期日视为一年的第一周。 然后问题最终变成了两个方面。问题1这是为什么?问题2有什么方法可以更改此设置,因此我不必修改所有代码即可ISO_Week在任何地方使用?