【发布时间】:2018-08-13 06:22:10
【问题描述】:
我一直在我的 SQL 查询中使用以下代码:
DECLARE @CurrentDate DateTime = Getdate()
然后我引用 @CurrentDate 而不是在同一个查询中多次使用 Getdate() 函数。这很有用,因为@CurrentDate 的值在查询执行期间不会改变。
但是,我已经开始将其中一些变量转换为 SSRS 设置的参数。这允许用户更改参数@CurrentDate,这出于各种原因很有用。通常,默认值设置为“=Now()”或包含 Now() 函数的某个表达式。
这些参数是在什么阶段计算的,如果我希望参数彼此一致,是否有一种“正确”的方法来计算它们?
我试图弄清楚我是否应该为当前日期设置一个参数,然后在计算我的其他参数时引用它,或者这是否会产生与简单地使用 Now() 相同的不一致(或更严重的不一致)在每个参数的表达式中。
【问题讨论】:
-
据我所知,只有在用户重新打开报表时才会重新计算该参数。此外,据我所知,SQL Server 目前每个查询只计算一次
GETDATE(),但当然这种行为可能会在 SQL Server 版本之间发生变化。