我构建了一个表达式来减少过期时间的时间部分并将其归零。
DateAdd(day, DateDiff(day, 0, PayDate), 0)
我的问题在此查询中(伪代码):
select
DateAdd(day, DateDiff(day, 0, PayDate), 0),
DateAdd(day, DateDiff(day, 0, PayDate), 0) + 3
where DateAdd(day, DateDiff(day, 0, PayDate), 0) > 3
DateAdd
表达式都是一样的。
这是我的问题:
- 每次看到此表达式(在
select
和where
子句中...)时,SQL Server 是否重新计算
最佳答案
当您在查询中多次使用某个函数时,每次使用时都会调用该函数。
使用相同的参数调用它并没有什么区别。
所以,是的,DATEDIFF
和 DATEADD
将各被调用三次。
关于sql-server - SQL Server重新计算还是不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7144885/