专注于
IT技术和业内交流

mysql基础–查询当天数据

有的时候,我们需要当天一定条件下的数据.好在mysql为我们提供了几个内置函数,能很快的完成查询.

TO_DAYS()

to_days(date) 指定一个日期date, 返回一个天数 (从年份0开始的天数),to_days(now())查询今天到开始的总天数.

mysql> select to_days(nows);
+----------------+
| to_days(now()) |
+----------------+
|        736438 |
+----------------+

查询今天的数据可以这样写:

mysql> select * from table where to_days(date) = to_days(now()); 
#date为时间字段,格式为:2012-3-2 17:22:16
#大多数情况写数据库存储的是时间戳格式的时间戳格式,所有需要将时间戳格式化一下,可使用FROM_UNIXTIME()函数进行格式化.

curdate()

curdate() 返回当前的日期;

 mysql>select curdate(); 
+------------+
| curdate()  |
+------------+
| 2016-04-19 |
+------------+
 #查询今天的数据
 mysql>select * from table where date(date) = curdate();

查询昨天

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

近7天

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

近30天

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

本月

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

上一月

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

未经允许,不得转载本站任何文章:代码山 » mysql基础–查询当天数据

分享到:更多 ()

专注品牌化高端网站建设

商务服务联系我们