今天花了些時間整理了下MySQL中分別查找當天、昨天、近一周、近一個月等等時間段數據的代碼
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