sql-server - SQL Server重新计算还是不行?

标签 sql-server

我构建了一个表达式来减少过期时间的时间部分并将其归零。

 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表达式都是一样的。

这是我的问题:

  • 每次看到此表达式(在 selectwhere 子句中...)时,SQL Server 是否重新计算

最佳答案

当您在查询中多次使用某个函数时,每次使用时都会调用该函数。

使用相同的参数调用它并没有什么区别。

所以,是的,DATEDIFFDATEADD 将各被调用三次。

关于sql-server - SQL Server重新计算还是不行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7144885/

相关文章:

sql-server - 如何从 Azure Devops 发布管道连接本地 SQL Server(使用 SQL 安装的 VM)

c# - 从数据库 C# 打开二进制文件

c# - 错误 : 40 - Could not open a connection to SQL Server

mysql - 使用具有动态 ID 的存储过程插入记录时出现问题

sql-server - 使用旧式数据库SQL Server的Grails

c# - IIS 上的 asp.net 应用程序无法连接到 localdb

sql - MySQL 将当前数据库与备份 SQL 文件合并

sql - 如何批量插入数据?

mysql - 为什么没有更多的 .NET 应用程序使用 MySQL 或允许使用 MySQL 的 DAO?

r - 如何在 dbplyr 中使用 R 代码创建自定义 SQL 函数?