我必须做出一个查询是在MSSQL服务器托管的数据库的表。
查询如下:
select *
from tableA
where createdOn between @startDate and @endDate
该类型变量@startDate和@EndDate的是日期时间。 如果@EndDate等于当前的日期和@startDate等于日期前一个月一次,我认为我们可以使查询无论是作为
declare @startDate datetime
declare @endDate datetime
set @startDate = DATEADD(month,-1,GETDATE())
set @endDate = GETDATE()
select *
from tableA
where createdOn between @startDate and @endDate
或
select *
from tableA
where createdOn between DATEADD(month,-1,GETDATE()) and GETDATE()
我认为第一个查询会更快,第二,因为在第二个查询,我们调用的函数的where子句。 我写我的查询的两个版本,我执行起来也。 但是,我没有注意到性能的任何显著差异。
有人能解释我为什么我没有看到任何改变。 也许以为第一个查询要快,第二是假的。 请让我知道,ID是那样的话,为什么是错误的。
在此先感谢您的帮助。