日期:2014-05-19  浏览次数:20445 次

请问:我想统计,本周、上周、本月、上个月、前三个月的数据,求高效的方法。
数据量比较大。

前面在很多高手的贴子里看到过类似时间段查询的sql句子,后悔当时没记录下。

现在找不到了。

请高手指点。

------解决方案--------------------
前三个月的是这样吧:
select * from tablename
where datediff(month,时间列,getdate()) <=3
------解决方案--------------------
本周> =convert(varchar(10),dateadd(day,1-datepart(weekday,getdate()),getdate()),120)
convert(varchar(10),dateadd(day,-datepart(weekday,getdate())-6,getdate()),120) <=上周 <convert(varchar(10),dateadd(day,1-datepart(weekday,getdate()),getdate()),120)
本月> =convert(varchar(8),getdate(),120)+ '01 '
convert(varchar(8),dateadd(month,-1,getdate()),120)+ '01 ' <=上个月 <convert(varchar(8),getdate(),120)+ '01 '
convert(varchar(8),dateadd(month,-3,getdate()),120)+ '01 ' <=前三个月 <convert(varchar(8),getdate(),120)+ '01 '