DATE_SUB(date,INTERVAL expr unit) : DATE_SUB « Date Time Functions « MySQL Tutorial






expr is an expression specifying the interval value.

expr is a string.

expr may start with a '-' for negative intervals.

unit is a keyword indicating the units in which the expression should be interpreted.

The following table shows the expected form of the expr argument for each unit value.

unit ValueExpected expr Format
MICROSECONDMICROSECONDS
SECONDSECONDS
MINUTEMINUTES
HOURHOURS
DAYDAYS
WEEKWEEKS
MONTHMONTHS
QUARTERQUARTERS
YEARYEARS
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'


mysql>
mysql> select DATE_SUB(curdate(), INTERVAL 1 DAY);
+-------------------------------------+
| DATE_SUB(curdate(), INTERVAL 1 DAY) |
+-------------------------------------+
| 2007-07-21                          |
+-------------------------------------+
1 row in set (0.00 sec)

mysql>








14.12.DATE_SUB
14.12.1.DATE_SUB(date,INTERVAL expr unit)
14.12.2.DATE_SUB(curdate(), INTERVAL 1 MICROSECOND);
14.12.3.DATE_SUB(curdate(), INTERVAL 1 MINUTE);
14.12.4.DATE_SUB(curdate(), INTERVAL 1 HOUR);
14.12.5.DATE_SUB(curdate(), INTERVAL 1 DAY);
14.12.6.DATE_SUB(curdate(), INTERVAL 1 WEEK);
14.12.7.DATE_SUB(curdate(), INTERVAL 1 MONTH);
14.12.8.DATE_SUB(curdate(), INTERVAL 1 QUARTER);
14.12.9.DATE_SUB(curdate(), INTERVAL 1 YEAR);
14.12.10.DATE_SUB(curdate(), INTERVAL 1.1 SECOND_MICROSECOND);
14.12.11.DATE_SUB(curdate(), INTERVAL 1 SECOND);
14.12.12.DATE_SUB(curdate(), INTERVAL 1.1 SECOND);
14.12.13.DATE_SUB(curdate(), INTERVAL 1.1 MINUTE_MICROSECOND);
14.12.14.DATE_SUB(curdate(), INTERVAL 1.1 MINUTE_SECOND);
14.12.15.select DATE_SUB(curdate(), INTERVAL 1.1 HOUR_MICROSECOND);
14.12.16.select DATE_SUB(curdate(), INTERVAL 1.1 HOUR_SECOND);
14.12.17.select DATE_SUB(curdate(), INTERVAL '1:1:1' HOUR_SECOND);
14.12.18.select DATE_SUB(curdate(), INTERVAL 1.1 HOUR_MINUTE); (with dot)
14.12.19.select DATE_SUB(curdate(), INTERVAL '1:1' HOUR_MINUTE);
14.12.20.select DATE_SUB(curdate(), INTERVAL 1.1 DAY_MICROSECOND);
14.12.21.select DATE_SUB(curdate(), INTERVAL '1 1:1:1' DAY_SECOND);
14.12.22.select DATE_SUB(curdate(), INTERVAL '1 1:1' DAY_MINUTE);
14.12.23.select DATE_SUB(curdate(), INTERVAL '1 1' DAY_HOUR);
14.12.24.select DATE_SUB(curdate(), INTERVAL 1.1 SECOND_MICROSECOND);
14.12.25.select DATE_SUB(curdate(), INTERVAL '1-1' YEAR_MONTH);
14.12.26.select DATE_SUB(curdate(), INTERVAL '1.1' YEAR_MONTH); (with dot)
14.12.27.Selects all rows with a start_date value from within the last 30 days
14.12.28.Getting a date 6 months in the past
14.12.29.Using DATE_SUB function to substract 55 years from current date