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优化,使用最优手段来解决问题!