首页 新闻 搜索 专区 学院

如何统计当周数据

0
悬赏园豆:30 [已解决问题] 解决于 2013-12-17 15:06

ID           CreateTime

-------    --------

1            2013-10-11 00:00:00.000

2            2013-11-13 00:00:00.000

3            2013-11-16 00:00:00.000

4            2013-11-21 00:00:00.000

5            2013-12-11 00:00:00.000

6            2013-12-30 00:00:00.000

 

显示结果:

今天是11-21

那么当周的数据总数应该为1

不知道要如何写,SQL太菜!!

 

 

最佳损友。的主页 最佳损友。 | 初学一级 | 园豆:103
提问于:2013-11-21 12:03
< >
分享
最佳答案
0

首先获取当周的第一天和最后一天,然后一个between and就完成了。

SELECT 
(GETDATE()-DATEPART(WEEKDAY,GETDATE())+1) as currentweekstart
,
(GETDATE()-DATEPART(WEEKDAY,GETDATE())+7) as currentweekend
收获园豆:13
tneduts | 菜鸟二级 |园豆:239 | 2013-11-21 12:12
其他回答(2)
0

select * from tb where datediff(week,CreateTime,getdate())=0

不过这个是把上个周日算作本周的开始的。也许你的需求是从星期一开始把

收获园豆:12
大芝麻 | 园豆:4 (初学一级) | 2013-11-21 12:13
0

如下:

SELECT COUNT(0) FROM t  WHERE DATEPART(week,CreateTime)=DATEPART(week,GETDATE())
收获园豆:5
幻天芒 | 园豆:36594 (高人七级) | 2013-11-21 18:46

这句有问题,我要查询的是当周。。。而CreateTime的时间值可能

2012-11-22

2013-11-22

2011-11-22

2014-11-22

DATEPART(week, '2012-11-22')、DATEPART(week, '2013-11-22')、DATEPART(week, '2014-11-22')

与 DATEPART(week,GETDATE()) 的值是相等的

支持(0) 反对(0) 最佳损友。 | 园豆:103 (初学一级) | 2013-11-22 11:44

@最佳损友: 你再加个年条件不就ok了。

支持(0) 反对(0) 幻天芒 | 园豆:36594 (高人七级) | 2013-11-22 13:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册