1. 程式人生 > >MySQL常用日期函式,日期相減,按天、周、月查詢

MySQL常用日期函式,日期相減,按天、周、月查詢

MySQL日期函式


select now(); -- 獲取當前時間
select DAYOFWEEK(now()); -- -- 1=星期天,2=星期一,3星期二,...
select WEEKDAY(now()); -- --0=星期一,1星期二,...
select DAYOFMONTH(now()); -- --本月的第幾天(幾號)
select DAYOFYEAR(now()); -- --本年的第幾天(幾號)
select MONTH(now()); -- --返回當前日期的月份
select DAYNAME(now()); -- --返回周幾(英文形式)
select MONTHNAME(now()); -- --返回某月(英文形式)
select QUARTER(now()); -- --返回這年的第幾個季度

日期相減(注意:timediff(time1,time2) 函式的兩個引數型別必須相同。):


MySQL datediff(date1,date2):兩個日期相減 date1 - date2,返回天數。
select datediff('2008-08-08', '2008-08-01'); -- 7
select datediff('2008-08-01', '2008-08-08'); -- -7
MySQL timediff(time1,time2):兩個日期相減 time1 - time2,返回 time 差值。
select timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00'); -- 08:08:08
select timediff('08:08:08', '00:00:00'); -- 08:08:08


日期相加:

select date_add(now(), INTERVAL 1 DAY_HOUR); -- 當前時間加一個小時
select date_add(now(), INTERVAL 2 DAY); -- 當前時間加兩天


按日期查詢:

1、查當天資料

date_format(a.create_date, '%Y-%m-%d') = date_format(now(), '%Y-%m-%d');

2、查本週資料

date_format(a.create_date, '%Y-%u') = date_format(now(), '%Y-%u')

3、查本月資料

date_format(a.create_date, '%Y-%m') = date_format(now(), '%Y-%m')