今天花了些时间整理了下MySQL中分别查找当天、昨天、近一周、近一个月等等时间段数据的代码
http://www.bcty365.com/content-35-3203-1.html
1、查询今天数据的语句
select * frim 表名 where to_days(时间字段名)==to_days(now()); select now();//获得当前时间 格式:2016-01-12 23:21:33 select curdate();//获得当前时间 格式: 2016-01-12 select curtime();//获得当前时间 格式:23:19:43
2、查询昨天数据的语句
select * from 表名 where to_days(now())-to_days(时间字段名)=1;
3、查询七天语句
select * from 表名 where date_sub(curdate(),interval 7 day)<=date(时间字段名); 或者 select * from 表名 where 时间字段名>=date_sub(curdate(),interval 7 day);
4、查询近一个月的语句
select * from 表名 where date_sub(curdate(),interval 1 month)<=date(时间字段名); 或者 select * from 表名 where 时间字段>=date_sub(curdate(),interval 1 month);
5、查询本季度数据
select * from 表名 where QUARTER(时间字段名)=QUARTER(now()); QUARTER(date);//返回的一年日期,取值范围为1至4季度。
6、查询上季度数据
select * from 表名 where QUARTER(时间字段名)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
6、查询本年的数据
select * from 表名 where YEAR(时间字段名)=YEAR(NOW());
7、查询去年数据
select * from 表名 where year(时间字段名)=year(date_sub(now(),interval 1 year));
8、查询当前这一周的数据
SELECT name,时间字段名 FROM 表名 WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());
9、查询上周的数据
SELECT name,时间字段名 FROM 表名 WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;
10、查询当前月份的数据
select name,时间字段名 from 表名 where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')
11、查询上个月的数据
select name,时间字段名 from 表名 where date_format(时间字段名,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m'); DATE_FORMAT();//函数用于以不同的格式显示日期/时间数据。
12、MySQL中日期时间函数大全
DAYOFWEEK(date) 返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODBC标准) mysql> select DAYOFWEEK('1998-02-03'); -> 3 WEEKDAY(date) 返回日期date是星期几(0=星期一,1=星期二,……6= 星期天) mysql> select WEEKDAY('1997-10-04 22:23:00'); -> 5 mysql> select WEEKDAY('1997-11-05'); -> 2 DAYOFMONTH(date) 返回date是一月中的第几日(在1到31范围内) mysql> select DAYOFMONTH('1998-02-03'); -> 3 DAYOFYEAR(date) 返回date是一年中的第几日(在1到366范围内) mysql> select DAYOFYEAR('1998-02-03'); -> 34 MONTH(date) 返回date中的月份数值 mysql> select MONTH('1998-02-03'); ->2