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)