1 -- 目标:查询当天的所有数据
2 -- 说明:表数据行数:960w
3
4 --方法一:使用格式化被查询条件与格式化当前时间比对
5 SELECT * FROM dbo.TB_NModuleUtilization WHERE CONVERT(VARCHAR(10),[UseTime],120)=CONVERT(VARCHAR(10),GETDATE(),120)
6 --方法二:使用函数DATEDIFF 比对
7 SELECT * FROM dbo.TB_NModuleUtilization WHERE DATEDIFF(day,UseTime,GETDATE())=0
8 --方法三:使用传统比对
9 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'
10
11 -- 结论:
12 -- 1、 方法三在此情况下最优!
13 -- 2、 写SQL不要盲目使用网上搜索,拿来就用;在完成功能后,有空进行SQL优化,使用最优手段来解决问题!
