Dar*_*der 12 sql sql-server datetime projection
我正在进行如下查询:
SELECT * FROM a WHERE DATEDIFF(D, a.DateValue, DateTimeNow) < 3;
并没有工作
我试图获取不超过3天的数据.
SQL服务器.
这该怎么做?
DATEDIFF工作太慢..
Cha*_*ana 28
DateDiff非常快......你的问题是你在数据库表列值上运行它,所以查询处理器必须在表中的每一行上运行该函数,即使该列上有索引也是如此.这意味着它必须从磁盘加载整个表.
DateDiff
而是dateAdd在今天的日期使用该函数,并将数据库表列与该单个计算的结果进行比较.现在它只运行DateAdd()一次,并且它可以使用索引(如果存在),仅加载与谓词标准匹配的行.
dateAdd
DateAdd()
Where a.DateValue > DateAdd(day,-3,getdate())
以这种方式执行此操作会使您的查询谓词具有SARG功能
归档时间:
15 年,7 月 前
查看次数:
34235 次
最近记录:
8 年,12 月 前