我在查询中并在sql 2008 r2上运行
datepart(ww, CreatedOn) as WeekYear
2015年1月1日作为第1周返回。完美。在报表设计器中使用相同的查询并运行报表时,SSRS似乎将其转换为第53周。2015年1月2日正好是第1周,只是1月1日正在发生变化。对于该字段我只使用查询中的值,我不要求SSRS进行任何值转换。这只是SSRS的一个怪癖吗?
答案 0 :(得分:0)
DatePart
的星期几函数取决于可选的FirstWeekOfYearValue
参数。该参数应该默认为FirstWeekOfYear.Jan1
,这意味着包含1月1日的那一周是第1周。它可能不会这样做。
试试这个:DatePart(ww, CreatedOn, 1, 1)
。
如果这不起作用,请尝试对日期进行硬编码以进行健全性检查:
试试这个:DatePart(ww, DateSerial(2015,1,1), 1, 1)
。
如果硬编码日期有效且你的日期字段没有,那么时区肯定会发生一些事情。
https://msdn.microsoft.com/en-us/library/20ee97hz%28v=vs.90%29.aspx