date 傳入的日期
expr 傳入的單位值
unit 傳入的單位
INTERVAL 是一個KEY
unit | expr |
MICROSECOND | MICROSECONDS |
SECOND | SECONDS |
MINUTE | MINUTES |
HOUR | HOURS |
DAY | DAYS |
WEEK | WEEKS |
MONTH | MONTHS |
QUARTER | QUARTERS |
YEAR | YEARS |
SECOND_MICROSECOND | 'SECONDS.MICROSECONDS' |
MINUTE_MICROSECOND | 'MINUTES.MICROSECONDS' |
MINUTE_SECOND | 'MINUTES:SECONDS' |
HOUR_MICROSECOND | 'HOURS.MICROSECONDS' |
HOUR_SECOND | 'HOURS:MINUTES:SECONDS' |
HOUR_MINUTE | 'HOURS:MINUTES' |
DAY_MICROSECOND | 'DAYS.MICROSECONDS' |
DAY_SECOND | 'DAYS HOURS:MINUTES:SECONDS' |
DAY_MINUTE | 'DAYS HOURS:MINUTES' |
DAY_HOUR | 'DAYS HOURS' |
YEAR_MONTH | 'YEARS-MONTHS' |
回傳值根據 date 參數:
如果 date 參數是一個 DATE 值,
而你的計算只會包括 YEAR、MONTH和DAY部分(沒有時間部分),
其結果是一個DATE 值。否則,
結果將是一個 DATETIME 值。
如果傳入的參數是 DATETIME或是TIMESTAMP格式,
或是傳入DATE格式時,
unit使用HOUR、MINUTE、SECOND,將回傳DATETIME格式。
否則以字串格式回傳。
要確定回傳結果是 DATETIME 格式,可以用CAST()將參數 date 轉為DATETIME 格式。
MySQL 允許 expr 中使用任何標點符號。上表中所顯示的是建議的分隔符號。
日期運算也允許使用 INTERVAL 關鍵字與 + 或 - 的符號來進行。
date + INTERVAL expr unit
date - INTERVAL expr unit
如果位於另一端的表達式是一個日期或日期時間值,
INTERVAL expr unit 關鍵字允許出現在『+』的兩端。
但是只允許 INTERVAL expr unit 關鍵字允許出現在『-』的右邊,
因為 INTERVAL expr unit 出現在『-』左邊計算結果是無意義的。
SELECT '2011-12-31 23:59:59' + INTERVAL 1 SECOND;
'2012-01-01 00:00:00'
SELECT INTERVAL 1 DAY + '2011-12-31';
'2012-01-01'
SELECT '2011-01-01' - INTERVAL 1 SECOND;
'2010-12-31 23:59:59'
SELECT DATE_ADD('2011-12-31 23:59:59',INTERVAL 1 SECOND);
'2012-01-01 00:00:00'
SELECT DATE_ADD('2011-12-31 23:59:59',INTERVAL 1 DAY);
'2012-01-01 23:59:59'
SELECT DATE_ADD('2011-12-31 23:59:59',INTERVAL '1:1' MINUTE_SECOND);
'2012-01-01 00:01:00'
SELECT DATE_SUB('2011-01-01 00:00:00',INTERVAL '1 1:1:1' DAY_SECOND);
'2010-12-30 22:58:59'
SELECT DATE_ADD('2011-01-01 00:00:00',INTERVAL '-1 10' DAY_HOUR);
'2010-12-30 14:00:00'
SELECT DATE_SUB('2011-01-02', INTERVAL 31 DAY);
'2010-12-02'
SELECT DATE_ADD('2011-12-31 23:59:59.000002',INTERVAL '1.999999' SECOND_MICROSECOND);
'2012-01-01 00:00:01.000001'
其它文章
沒有留言:
張貼留言