(转载)mysql查询今天、昨天、7天、近30天、本月、上一月数据

(转载)http://blog.163.com/dreamman_yx/blog/static/26526894201053115622827/

查询

今天

select * from 表名 where to_days(时间字段名) = to_days(now());

昨天

SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1

7天

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)

近30天

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)

本月

SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )

上一月

SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =1

 

例子1:

mysql> select time('2013-05-13 19:50:33');
+-----------------------------+
| time('2013-05-13 19:50:33') |
+-----------------------------+
| 19:50:33                    |
+-----------------------------+
1 row in set (0.05 sec)

mysql> select date('2013-05-13 19:50:33');
+-----------------------------+
| date('2013-05-13 19:50:33') |
+-----------------------------+
| 2013-05-13                  |
+-----------------------------+
1 row in set (0.00 sec)

 

例子2:

mysql> select to_days(now());
+----------------+
| to_days(now()) |
+----------------+
|         735425 |
+----------------+
1 row in set (0.03 sec)

mysql> select to_days('2013-07-07 19:30:30');
+--------------------------------+
| to_days('2013-07-07 19:30:30') |
+--------------------------------+
|                         735421 |
+--------------------------------+
1 row in set (0.00 sec)

mysql>

 

posted @ 2013-07-11 00:12  robotke1  阅读(206)  评论(0编辑  收藏  举报