在tsql的where子句中,YEAR DAY MONTH的顺序应该是多少?
Select * from TABLE_NAME
WHERE
YEAR(COLUMN_NAME)=YEAR(GETDATE()) --1
and DAY(COLUMN_NAME)=DAY(GETDATE()) --2
and MONTH(COLUMN_NAME)=MONTH(GETDATE()) --3
订单是否会改善查询的运行时间? tsql如何执行此语句?
答案 0 :(得分:5)
如果你想提高性能,那么你做错了。您正在使用的过滤器将不使用索引(如果COLUMN_NAME
上存在索引),因为您正在向它们应用函数。正确的做法是将该列直接与GETDATE()
进行比较(在这种情况下)。这是一种更好的方法:
SELECT *
FROM TABLE_NAME
WHERE COLUMN_NAME >= DATEADD(DAY,DATEDIFF(DAY,0,GETDATE()),0)
AND COLUMN_NAME < DATEADD(DAY,DATEDIFF(DAY,0,GETDATE()),1)