+ -
当前位置:首页 → 问答吧 → 进来看看,关于周和月查询sql的写法

进来看看,关于周和月查询sql的写法

时间:2011-08-18

来源:互联网

RT,我表的结果如下
id uid pid date serverid  
1 111 000 2011-08-18 3
2 112 001 2011-08-18 3
3 113 002 2011-08-18 3
...

需求是查询上上周(2周前)的所有pid
和查询上上月(6月)的所有的pid

请问该如何写?

作者: hxm19881010   发布时间: 2011-08-18

-- 去Google: mysql 日期、时间函数! 自己解决撒!

作者: luoyoumou   发布时间: 2011-08-18

- -!自己写好了,发现有BUG。。。呜呜

作者: hxm19881010   发布时间: 2011-08-18

select pid from tbname where `date`<adddate(now(),interval -2 week);
select pid from tbname where month(`date`)=6 and year(`date`)=2011;

作者: vipper23   发布时间: 2011-08-18

where date between '' and ''

作者: rucypli   发布时间: 2011-08-18

SELECT * FROM TT WHERE `date`=CURDATE()-INTERVAL 6 MONTH OR `date`=CURDATE()-INTERVAL 2 WEEK

作者: wwwwb   发布时间: 2011-08-18

SQL code
-- 如果你是要求 [本周的第一天] 的 [前两个星期] 的话,这样求:

mysql> SELECT DATE_SUB(DATE_SUB(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY), INTERVAL 2 WEEK);
+-------------------------------------------------------------------------------------+
| DATE_SUB(DATE_SUB(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY), INTERVAL 2 WEEK) |
+-------------------------------------------------------------------------------------+
| 2011-07-31                                                                          |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)


作者: luoyoumou   发布时间: 2011-08-18

引用 6 楼 luoyoumou 的回复:

SQL code
-- 如果你是要求 [本周的第一天] 的 [前两个星期] 的话,这样求:

mysql> SELECT DATE_SUB(DATE_SUB(CURDATE(), INTERVAL DAYOFWEEK(CURDATE())-1 DAY), INTERVAL 2 WEEK);
+---------------------------------------------------……


-- 只要小于 2011-07-31 号的日期,就表示:[本周的第一天] 的 [前两个星期] 的日期啦!

作者: luoyoumou   发布时间: 2011-08-18