mysql日期加減
一、MySQL 為日期增加一個時間間隔:date_add()。
1、 示例:
set @dt = now();
select date_add(@dt, interval 1 day); - 加1天
select date_add(@dt, interval 1 hour); -加1小時
select date_add(@dt, interval 1 minute); - 加1分鍾
select date_add(@dt, interval 1 second); -加1秒
select date_add(@dt, interval 1 microsecond); -加1毫秒
select date_add(@dt, interval 1 week); -加1周
select date_add(@dt, interval 1 month); -加1月
select date_add(@dt, interval 1 quarter); -加1季
select date_add(@dt, interval 1 year); -加1年
2、MySQL adddate(), addtime()函數,可以用 date_add() 來替代。
二、MySQL 為日期減去一個時間間隔:date_sub():
1、mysql> select date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second);
date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second)
1997-12-30 22:58:59
2、MySQL中還有兩個函數subdate(),subtime(),建議用date_sub()來替代。
三、MySQL 另類日期函數:period_add(P,N), period_diff(P1,P2)
函數參數“P”的格式為“YYYYMM”或者“YYMM”,第二個參數“N”表示增加或減去 N month(月)。
1、MySQL period_add(P,N):日期加/減去N月。
mysql> select period_add(200808,2), period_add(20080808,-2)
| period_add(200808,2) | period_add(20080808,-2) |
結果|200810 |20080806 |
MySQL period_diff(P1,P2):日期 P1-P2,返回 N 個月。
mysql> select period_diff(200808, 200801);
period_diff(200808, 200801)
結果:7
2、MySQL 中,這兩個日期函數,一般情況下很少用到。
四、MySQL 日期、時間相減函數:datediff(date1,date2), 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
注意:timediff(time1,time2) 函數的兩個參數類型必須相同。
五、當前時間的幾個函數:
1、NOW (); 當前具體的日期和時間,
2、CURDATE (); 當前日期
3、CURTIME(); 當前時間
4、DATE ( date ); 提取日期或日期/時間表達式的日期部分
5、DATE_ADD ( date, INTERVAL expr type); 給日期添加指定的時間間隔,
expr 表時間間隔,type參數可以是下列值:
MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR
SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND
HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND
DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH
6、DATE_SUB (date, INTERVAL expr type); 從日期送去指定的時間間隔。
expr 參數是您希望添加的時間間隔, type參數同DATE_ADD()。
7、DATEDIFF ( date1, date2 ); 返回兩個日期之間的天數,只有值的日期部分參與計算。
8、DATE_FORMAT (date, format); 用不同的格式顯示日期/時間。
