【问题标题】:Wrong week number displaying on SSRS reportSSRS 报告上显示错误的周数
【发布时间】:2015-06-22 02:40:17
【问题描述】:

我已经在查询中并在 sql 2008 r2 上运行

datepart(ww, CreatedOn) as WeekYear

2015 年 1 月 1 日的第 1 周返回。完美。在报表设计器中使用相同的查询并运行报表时,SSRS 似乎将其转换为第 53 周。2015 年 1 月 2 日与第 1 周一样好,只是 1 月 1 日发生了变化。对于该字段,我只使用查询中的值,我不要求 SSRS 对值进行任何转换。这只是 SSRS 的一个怪癖吗?

【问题讨论】:

  • 听起来像是时区问题。 2015 年 1 月 1 日本地化到 GMT 以东 1 小时的时区变为 2014 年 12 月 31 日 23:00 UTC。您的报表服务器使用哪个时区?
  • @JC。我认为是这样,但 CreatedOn 是 2015-01-01 22:08:38.000 而 UTCTOCST 是 2015-01-01 16:08:38.000
  • 您的报表服务器是否位于您以西的时区?
  • @JC. 不,查询返回正确的结果,是 SSRS 中发生的事情改变了周数。
  • 尝试在报告上打印完整的日期和时间,看看 SSRS 认为它是什么。

标签: sql sql-server-2008 reporting-services


【解决方案1】:

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

【讨论】:

  • 感谢反馈和时间,我早上去看看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-19
  • 2021-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-30
  • 1970-01-01
相关资源
最近更新 更多