在SSRS 2005中,我的报告设置为每天下午5点拍摄快照历史记录,它将使用Now()表达式来捕获日期和时间。这将捕获下午5:00的日期和时间并保留报告中的时间戳。
我已升级到SQL 2008(非R2),旧报告仍保留下午5:00的快照时间戳,但每次查看shistory的快照时,自更新以来所有新创建的报告都会运行表达式。它为您提供了运行时间,因此如果我查看2013年4月1日下午5:00捕获的报告的时间戳,它将显示2013年4月22日上午10:43。
当它是SSRS 2005时,如果我查看2013年4月1日下午5:00捕获的报告的时间戳,它将在下午5:00显示4/1/2013。
答案 0 :(得分:1)
面对同样的问题,我最终在数据集中添加了一个datetime列,并在SQL查询中将其设置为GetDate()
。然后我在报告中使用了该字段。不是最优雅的解决方案,但它确实有效。
答案 1 :(得分:1)
为了解决SSRS报告在运行“报告历史快照”时捕获正确的DateTime的问题,您应该使用 ExecutionTime全局字段,而不是 Now()或 Today()类型的功能。
-> = "Run Date: " + =Today()
…更改为…"Run Date: " + FormatDateTime(Globals!ExecutionTime, DateFormat.ShortDate)
-> = "Run Time: " + TimeOfDay()
…更改为…"Run Time: " + FormatDateTime(Globals!ExecutionTime, DateFormat.LongTime)
它将提供您要打印执行运行时所需的结果,而不是当前时间。