sql中删选时间的效率问题
对时间进行删选时,发现一个奇怪的问题
用select a from table1 where xcrq=@xcrq
和用
declare @daytime1 datetime;
declare @daytime2 datetime;
set @daytime1=convert(datetime,convert(varchar(4),DATEPART(yy,@querydate))+'-'+convert(varchar(2),DATEPART(mm,@querydate))+'-'+convert(varchar(2),DATEPART(dd,@querydate))+' 0:00:01')
set @daytime2=convert(datetime,convert(varchar(4),DATEPART(yy,@querydate))+'-'+convert(varchar(2),DATEPART(mm,@querydate))+'-'+convert(varchar(2),DATEPART(dd,@querydate))+' 23:59:59')
select a from table1 where xcrq between @daytime1 and @daytime2
后者的效率要比前者搞100倍以上(数据比较多的时候)
不知道为什么
呵呵既然发现这个问题,那以后写的时候要注意一下。