1. 程式人生 > >sql 時間取日期部分速度對比

sql 時間取日期部分速度對比

select CONVERT(varchar(100), etime, 23),COUNT(imsi) from dbo.userEventInfo_partition
where etime >'20180101' and etime <'20180201'
group by CONVERT(varchar(100), etime, 23)

order by  CONVERT(varchar(100), etime, 23)


耗時 : 31S

select Datename(year,etime)+'-'+Datename(month,etime)+'-'+Datename(day,etime),COUNT(imsi) from dbo.userEventInfo_partition where etime >'20180101' and etime <'20180201'
group by Datename(year,etime)+'-'+Datename(month,etime)+'-'+Datename(day,etime)

order by  Datename(year,etime)+'-'+Datename(month,etime)+'-'+Datename(day,etime)


耗時 : 1S

可見字元處理是很耗時的。


補齊日期的兩位數寫法:


select Datename(YYYY,etime)+'-'+Datename(M,etime)+'-'+RIGHT('0'+ltrim(Datename(DD,etime)),2),COUNT(imsi) from dbo.userEventInfo_partition where etime >'20180101' and etime <'20180201'
group by Datename(YYYY,etime)+'-'+Datename(MM,etime)+'-'+RIGHT('0'+ltrim(Datename(DD,etime)),2)
order by  Datename(YYYY,etime)+'-'+Datename(MM,etime)+'-'+RIGHT('0'+ltrim(Datename(DD,etime)),2)