SUBDATE(date,INTERVAL expr type)
这些函数执行日期的算术运算。ADDDATEO 和 SUBDATE。分别是 DATE_ADD()和 DATE.SUBO
的同义词。在 MySQL3.23 中,如果表达式的右边是一个口期值或一个日期 时间型字段,你可以
使用+和-代替 DATE_ADD()和 DATE_SUB()(示例如下)。参数 date 是一个 DATETIME 或 DATE
值,指定一个口期的开始。expr 是一个表达式,指定从 开始日期上增加还是减去间隔值。expr 是
一个字符串;它可以以一个领头表示一个 负的间隔值。type 是一个关键词,它标志着表达式以何
格式被解释。下表显示 type 和 expr 参数是如何关联的:type 值 expr 期望的格式
SECOND SECONDS
MINUTE MINUTES
HOUR HOURS
DAY DAYS
MONTH MONTHS
YEAR YEARS
MINUTE_SECOND “MINUTES:SECONDS”
HOUR_MINUTE “HOURS:MINUTES"
DAY_HOUR “DAYS HOURS,,
YEAR.MONTH “YEARS-MONTHS"
HOUR_SECOND “HOURS:MINUTES:SECONDS”
DAY_MINUTE “DAYS HOURS:MINUTES"
DAY_SECOND “DAYS HOURS:MINUTES:SECONDS,,
在 expr 的格式中,MySQL 允许任何字符作为定界符。表中所显示的是建议的定界字符。 如果 date
参数是一个 DATE 值,并且计算的间隔仅仅有 YEAR、MONTH 和 DAY 部分 (没有时间部分),
那么返回值也是一个 DATE 值。否则返回值是一个 DATETIME 值: mysql> SELECT “1997-12-31
23:59:59" + INTERVAL 1 SECOND;
-> 1998-01-01 00:00:00
mysql> SELECT INTERVAL I DAY + " 1997-12-31 ”;
-> 1998-01-01
mysql> SELECT “1998-01-01" - INTERVAL 1 SECOND;
-> 1997-12-31 23:59:59
mysql> SELECT DATE_ADD(
W
1997-12-31 23:59:59,
-> INTERVAL 1 SECOND);
-> 1998-01-01 00:00:00
mysql> SELECT DATE_ADD(" 1997-12-31 23:59:59〃,
-> INTERVAL 1 DAY);
-> 1998-01-01 23:59:59
mysql> SELECT DATE_ADD(" 1997-12-31 23:59:59〃,
-> INTERVAL "1:1" MINUTE_SECOND);
-> 1998-01-01 00:01:00
mysql> SELECT DATE_SUB(” 1998-01-0100:00:00”,
-> INTERVAL “1 1:1:1" DAY_SECOND);
-> 1997-12-30 22:58:59
mysql> SELECT DATE_ADD(
W
1998-01-01 00:00:00
,z
,
-> INTERVAL "-1 10” DAY.HOUR);
-> 1997-12-30 14:00:00