今天
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
#查詢本季度數據
select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(now());
#查詢上季度數據
select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));
#查詢本年數據
select * from `ht_invoice_information` where YEAR(create_date)=YEAR(NOW());
#查詢上年數據
select * from `ht_invoice_information` where year(create_date)=year(date_sub(now(),interval 1 year));
查詢當前這周的數據
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());
查詢上週的數據
SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;
查詢當前月份的數據
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')
查詢距離當前如今6個月的數據
select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();
查詢上個月的數據
select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 1 MONTH),'%Y-%m') mysql
知識點:sql
下面的表格列出了 MySQL 中最重要的內建日期函數:函數
函數 | 描述 |
---|---|
NOW() | 返回當前的日期和時間 2008-12-29 16:25:46 |
CURDATE() | 返回當前的日期 2008-12-29 |
CURTIME() | 返回當前的時間 16:25:46 |
DATE() | 提取日期或日期/時間表達式的日期部分 |
EXTRACT() | 返回日期/時間按的單獨部分 |
DATE_ADD() | 給日期添加指定的時間間隔 |
DATE_SUB() | 從日期減去指定的時間間隔 |
DATEDIFF() | 返回兩個日期之間的天數 |
DATE_FORMAT() | 用不一樣的格式顯示日期/時間 |
TO_DAYS(date) :做用是給出一個日期date,返回一個天數(從公元0年的天數);spa
SELECT OrderId, AS OrderPayDate
FROM OrdersDATE_SUB(OrderDate,INTERVAL 2 DAY)
DATE_SUB(CURDATE(), INTERVAL 30 DAY)code