MySQL關於根據日期查詢資料的sql語句

weixin_34037977發表於2018-11-06

查詢在某段日期之間的資料:

select * from 資料表  where 時間欄位名 BETWEEN '2016-02-01' AND '2016-02-05'

查詢往前3個月的資料:

select * from 資料表 where 時間欄位名 BETWEEN DATE_SUB(NOW(),INTERVAL 3 MONTH) AND NOW()

查詢往前一年的資料:

select * from 資料表  where 時間欄位名 BETWEEN DATE_SUB(NOW(),INTERVAL 1 YEAR) AND NOW()

查詢本月的資料:

select * from 資料表 where DATE_FORMAT(時間欄位名,'%Y-%m')=DATE_FORMAT(NOW(),'%Y-%m')

查詢上月的資料:

select * from 資料表 where DATE_FORMAT(時間欄位名,'%Y-%m')=DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH),'%Y-%m')

查詢本週的資料:

select * from 資料表 where YEARWEEK(DATE_FORMAT(時間欄位名,'%Y-%m-%d')) = YEARWEEK(NOW())

查詢上週資料:

select * from 資料表 where YEARWEEK(DATE_FORMAT(CREATE_TIME,'%Y-%m-%d')) = YEARWEEK(NOW())-1

查詢往前7天的資料:

select * from 資料表 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= 你要判斷的時間欄位名

查詢往前30天的資料:

select * from 資料表 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= 你要判斷的時間欄位名

根據國人習慣 週一為一週的第一天習慣算一週的資料

SELECT * FROM t_browse_statistics WHERE YEARWEEK(date_format(brows_date,'%Y-%m-%d'),1) = YEARWEEK(now())+1
ORDER BY brows_date DESC

相關文章