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倍以上(数据比较多的时候)

不知道为什么

呵呵既然发现这个问题,那以后写的时候要注意一下。

你可能感兴趣的:(sql)