-- 目标:查询当天的所有数据
-- 说明:表数据行数:960w
--方法一:使用格式化被查询条件与格式化当前时间比对
SELECT * FROM dbo.TB_NModuleUtilization WHERE CONVERT(VARCHAR(10),[UseTime],120)=CONVERT(VARCHAR(10),GETDATE(),120)
--方法二:使用函数DATEDIFF 比对
SELECT * FROM dbo.TB_NModuleUtilization WHERE DATEDIFF(day,UseTime,GETDATE())=0
--方法三:使用传统比对
SELECT * FROM dbo.TB_NModuleUtilization WHERE UseTime BETWEEN CONVERT(varchar(100), GETDATE(), 23) +' 00:00:00' AND CONVERT(varchar(100), GETDATE(), 23) +' 23:59:59'
-- 结论:
-- 1、 方法三在此情况下最优!
-- 2、 写SQL不要盲目使用网上搜索,拿来就用;在完成功能后,有空进行SQL优化,使用最优手段来解决问题!
![](https://img2020.cnblogs.com/blog/1310644/202103/1310644-20210309155014947-1240710347.png)
by:https://www.cnblogs.com/woadmin/p/9650459.html