MySQL Tutorial/Date Time Functions/DATE ADD — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 09:50, 26 мая 2010
Содержание
- 1 Adding one day to a date: SELECT DATE_ADD("2006-05-01",INTERVAL 1 DAY);
- 2 Adding one month to a date: SELECT DATE_ADD("2006-05-01",INTERVAL 1 MONTH);
- 3 Adding one month to start date
- 4 Adding one year to a date: SELECT DATE_ADD("2006-05-01",INTERVAL 1 YEAR);
- 5 DATE_ADD(curdate(), INTERVAL "1 1:1:1" DAY_SECOND);
- 6 DATE_ADD(curdate(), INTERVAL "1 1:1" DAY_MINUTE);
- 7 DATE_ADD(curdate(), INTERVAL "1:1:1" HOUR_SECOND);
- 8 DATE_ADD(curdate(), INTERVAL "1 1" DAY_HOUR);(wihtout :)
- 9 DATE_ADD(curdate(), INTERVAL 1.1 DAY_MICROSECOND);
- 10 DATE_ADD(curdate(), INTERVAL 1.1 HOUR_MICROSECOND);
- 11 DATE_ADD(curdate(), INTERVAL "1:1" HOUR_MINUTE);
- 12 DATE_ADD(curdate(), INTERVAL 1.1 HOUR_MINUTE); (with dot)
- 13 DATE_ADD(curdate(), INTERVAL 1.1 HOUR_SECOND);
- 14 DATE_ADD(curdate(), INTERVAL 1.1 MINUTE_MICROSECOND);
- 15 DATE_ADD(curdate(), INTERVAL 1.1 MINUTE_SECOND);
- 16 DATE_ADD(curdate(), INTERVAL 1.1 SECOND);
- 17 DATE_ADD(curdate(), INTERVAL 1.1 SECOND_MICROSECOND)
- 18 DATE_ADD(curdate(), INTERVAL 1.1 SECOND_MICROSECOND); (with dot)
- 19 DATE_ADD(curdate(), INTERVAL "1.1" YEAR_MONTH); (with dot)
- 20 DATE_ADD(curdate(), INTERVAL "1-1" YEAR_MONTH); (with minus sign)
- 21 DATE_ADD(curdate(), INTERVAL 1 DAY);
- 22 DATE_ADD(curdate(), INTERVAL 1 HOUR);
- 23 DATE_ADD(curdate(), INTERVAL 1 MICROSECOND);
- 24 DATE_ADD(curdate(), INTERVAL 1 MINUTE);
- 25 DATE_ADD(curdate(), INTERVAL 1 MONTH);
- 26 DATE_ADD(curdate(), INTERVAL 1 QUARTER);
- 27 DATE_ADD(curdate(), INTERVAL 1 SECOND);
- 28 DATE_ADD(curdate(), INTERVAL 1 WEEK);
- 29 DATE_ADD(curdate(), INTERVAL 1 YEAR);
- 30 DATE_ADD(date,INTERVAL expr unit)
- 31 Date arithmetic operations require complete dates
- 32 If the resulting date has a day that is larger than the maximum day for the new month, the day is adjusted to the maximum days in the new month.
- 33 If you add to or subtract from a date value something that contains a time part, the result is automatically converted to a datetime value.
- 34 SELECT "2005-03-32" + INTERVAL 1 MONTH;
- 35 SELECT DATE_ADD("1992-59:59.000002", "1.999999" SECOND_MICROSECOND);
- 36 SELECT DATE_ADD("1997-59:59", "1:1" MINUTE_SECOND);
- 37 SELECT DATE_ADD("1997-59:59", 1 DAY);
- 38 SELECT DATE_ADD("1997-59:59", 1 SECOND);
- 39 SELECT DATE_ADD("1998-00:00", "-1 10" DAY_HOUR);
- 40 SELECT DATE_ADD("1999-01-01", INTERVAL 1 HOUR);
- 41 SELECT DATE_SUB("1998-00:00", "1 1:1:1" DAY_SECOND);
- 42 SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
Adding one day to a date: SELECT DATE_ADD("2006-05-01",INTERVAL 1 DAY);
mysql>
mysql> SELECT DATE_ADD("2006-05-01",INTERVAL 1 DAY);
+---------------------------------------+
| DATE_ADD("2006-05-01",INTERVAL 1 DAY) |
+---------------------------------------+
| 2006-05-02 |
+---------------------------------------+
1 row in set (0.00 sec)
mysql>
mysql>
Adding one month to a date: SELECT DATE_ADD("2006-05-01",INTERVAL 1 MONTH);
mysql>
mysql>
mysql> SELECT DATE_ADD("2006-05-01",INTERVAL 1 MONTH);
+-----------------------------------------+
| DATE_ADD("2006-05-01",INTERVAL 1 MONTH) |
+-----------------------------------------+
| 2006-06-01 |
+-----------------------------------------+
1 row in set (0.00 sec)
mysql>
Adding one month to start date
mysql>
mysql>
mysql> CREATE TABLE Employee(
-> id int,
-> first_name VARCHAR(15),
-> last_name VARCHAR(15),
-> start_date DATE,
-> end_date DATE,
-> salary FLOAT(8,2),
-> city VARCHAR(10),
-> description VARCHAR(15)
-> );
Query OK, 0 rows affected (0.03 sec)
mysql>
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values (1,"Jason", "Martin", "19960725", "20060725", 1234.56, "Toronto", "Programmer");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(2,"Alison", "Mathews", "19760321", "19860221", 6661.78, "Vancouver","Tester");
Query OK, 1 row affected (0.02 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(3,"James", "Smith", "19781212", "19900315", 6544.78, "Vancouver","Tester");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(4,"Celia", "Rice", "19821024", "19990421", 2344.78, "Vancouver","Manager");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(5,"Robert", "Black", "19840115", "19980808", 2334.78, "Vancouver","Tester");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(6,"Linda", "Green", "19870730", "19960104", 4322.78,"New York", "Tester");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(7,"David", "Larry", "19901231", "19980212", 7897.78,"New York", "Manager");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
-> values(8,"James", "Cat", "19960917", "20020415", 1232.78,"Vancouver", "Tester");
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> select * from Employee;
+------+------------+-----------+------------+------------+---------+-----------+-------------+
| id | first_name | last_name | start_date | end_date | salary | city | description |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
| 1 | Jason | Martin | 1996-07-25 | 2006-07-25 | 1234.56 | Toronto | Programmer |
| 2 | Alison | Mathews | 1976-03-21 | 1986-02-21 | 6661.78 | Vancouver | Tester |
| 3 | James | Smith | 1978-12-12 | 1990-03-15 | 6544.78 | Vancouver | Tester |
| 4 | Celia | Rice | 1982-10-24 | 1999-04-21 | 2344.78 | Vancouver | Manager |
| 5 | Robert | Black | 1984-01-15 | 1998-08-08 | 2334.78 | Vancouver | Tester |
| 6 | Linda | Green | 1987-07-30 | 1996-01-04 | 4322.78 | New York | Tester |
| 7 | David | Larry | 1990-12-31 | 1998-02-12 | 7897.78 | New York | Manager |
| 8 | James | Cat | 1996-09-17 | 2002-04-15 | 1232.78 | Vancouver | Tester |
+------+------------+-----------+------------+------------+---------+-----------+-------------+
8 rows in set (0.00 sec)
mysql>
mysql>
mysql> SELECT DATE_ADD(start_date,INTERVAL 1 MONTH) from Employee;
+---------------------------------------+
| DATE_ADD(start_date,INTERVAL 1 MONTH) |
+---------------------------------------+
| 1996-08-25 |
| 1976-04-21 |
| 1979-01-12 |
| 1982-11-24 |
| 1984-02-15 |
| 1987-08-30 |
| 1991-01-31 |
| 1996-10-17 |
+---------------------------------------+
8 rows in set (0.00 sec)
mysql>
mysql>
mysql>
mysql> drop table Employee;
Query OK, 0 rows affected (0.01 sec)
mysql>
mysql>
Adding one year to a date: SELECT DATE_ADD("2006-05-01",INTERVAL 1 YEAR);
mysql>
mysql> SELECT DATE_ADD("2006-05-01",INTERVAL 1 YEAR);
+----------------------------------------+
| DATE_ADD("2006-05-01",INTERVAL 1 YEAR) |
+----------------------------------------+
| 2007-05-01 |
+----------------------------------------+
1 row in set (0.02 sec)
DATE_ADD(curdate(), INTERVAL "1 1:1:1" DAY_SECOND);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL "1 1:1:1" DAY_SECOND);
+----------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL "1 1:1:1" DAY_SECOND) |
+----------------------------------------------------+
| 2007-07-23 01:01:01 |
+----------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL "1 1:1" DAY_MINUTE);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL "1 1:1" DAY_MINUTE);
+--------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL "1 1:1" DAY_MINUTE) |
+--------------------------------------------------+
| 2007-07-23 01:01:00 |
+--------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL "1:1:1" HOUR_SECOND);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL "1:1:1" HOUR_SECOND);
+---------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL "1:1:1" HOUR_SECOND) |
+---------------------------------------------------+
| 2007-07-22 01:01:01 |
+---------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL "1 1" DAY_HOUR);(wihtout :)
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL "1 1" DAY_HOUR);
+----------------------------------------------+
| DATE_ADD(curdate(), INTERVAL "1 1" DAY_HOUR) |
+----------------------------------------------+
| 2007-07-23 01:00:00 |
+----------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1.1 DAY_MICROSECOND);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1.1 DAY_MICROSECOND);
+---------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1.1 DAY_MICROSECOND) |
+---------------------------------------------------+
| 2007-07-22 00:00:01.000001 |
+---------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1.1 HOUR_MICROSECOND);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1.1 HOUR_MICROSECOND);
+----------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1.1 HOUR_MICROSECOND) |
+----------------------------------------------------+
| 2007-07-22 00:00:01.000001 |
+----------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL "1:1" HOUR_MINUTE);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL "1:1" HOUR_MINUTE);
+-------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL "1:1" HOUR_MINUTE) |
+-------------------------------------------------+
| 2007-07-22 01:01:00 |
+-------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1.1 HOUR_MINUTE); (with dot)
mysql>
mysql>
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1.1 HOUR_MINUTE);
+-----------------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1.1 HOUR_MINUTE) |
+-----------------------------------------------+
| 2007-07-22 01:01:00 |
+-----------------------------------------------+
1 row in set (0.00 sec)
DATE_ADD(curdate(), INTERVAL 1.1 HOUR_SECOND);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1.1 HOUR_SECOND);
+-----------------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1.1 HOUR_SECOND) |
+-----------------------------------------------+
| 2007-07-22 00:01:01 |
+-----------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1.1 MINUTE_MICROSECOND);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1.1 MINUTE_MICROSECOND);
+------------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1.1 MINUTE_MICROSECOND) |
+------------------------------------------------------+
| 2007-07-22 00:00:01.000001 |
+------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1.1 MINUTE_SECOND);
mysql>
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1.1 MINUTE_SECOND);
+-------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1.1 MINUTE_SECOND) |
+-------------------------------------------------+
| 2007-07-22 00:01:01 |
+-------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1.1 SECOND);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1.1 SECOND);
+------------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1.1 SECOND) |
+------------------------------------------+
| 2007-07-22 00:00:01 |
+------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1.1 SECOND_MICROSECOND)
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1.1 SECOND_MICROSECOND);
+------------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1.1 SECOND_MICROSECOND) |
+------------------------------------------------------+
| 2007-07-22 00:00:01.100000 |
+------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1.1 SECOND_MICROSECOND); (with dot)
mysql>
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1.1 SECOND_MICROSECOND);
+------------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1.1 SECOND_MICROSECOND) |
+------------------------------------------------------+
| 2007-07-22 00:00:01.100000 |
+------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL "1.1" YEAR_MONTH); (with dot)
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL "1.1" YEAR_MONTH);
+------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL "1.1" YEAR_MONTH) |
+------------------------------------------------+
| 2008-08-22 |
+------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL "1-1" YEAR_MONTH); (with minus sign)
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL "1-1" YEAR_MONTH);
+------------------------------------------------+
| DATE_ADD(curdate(), INTERVAL "1-1" YEAR_MONTH) |
+------------------------------------------------+
| 2008-08-22 |
+------------------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1 DAY);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1 DAY);
+-------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1 DAY) |
+-------------------------------------+
| 2007-07-23 |
+-------------------------------------+
1 row in set (0.00 sec)
DATE_ADD(curdate(), INTERVAL 1 HOUR);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1 HOUR);
+--------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1 HOUR) |
+--------------------------------------+
| 2007-07-22 01:00:00 |
+--------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1 MICROSECOND);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1 MICROSECOND);
+---------------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1 MICROSECOND) |
+---------------------------------------------+
| 2007-07-22 00:00:00.000001 |
+---------------------------------------------+
1 row in set (0.00 sec)
DATE_ADD(curdate(), INTERVAL 1 MINUTE);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1 MINUTE);
+----------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1 MINUTE) |
+----------------------------------------+
| 2007-07-22 00:01:00 |
+----------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1 MONTH);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1 MONTH);
+---------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1 MONTH) |
+---------------------------------------+
| 2007-08-22 |
+---------------------------------------+
1 row in set (0.00 sec)
DATE_ADD(curdate(), INTERVAL 1 QUARTER);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1 QUARTER);
+-----------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1 QUARTER) |
+-----------------------------------------+
| 2007-10-22 |
+-----------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1 SECOND);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1 SECOND);
+----------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1 SECOND) |
+----------------------------------------+
| 2007-07-22 00:00:01 |
+----------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(curdate(), INTERVAL 1 WEEK);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1 WEEK);
+--------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1 WEEK) |
+--------------------------------------+
| 2007-07-29 |
+--------------------------------------+
1 row in set (0.00 sec)
DATE_ADD(curdate(), INTERVAL 1 YEAR);
mysql>
mysql> select DATE_ADD(curdate(), INTERVAL 1 YEAR);
+--------------------------------------+
| DATE_ADD(curdate(), INTERVAL 1 YEAR) |
+--------------------------------------+
| 2008-07-22 |
+--------------------------------------+
1 row in set (0.00 sec)
mysql>
DATE_ADD(date,INTERVAL expr unit)
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 Value Expected expr Format 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 arithmetic operations require complete dates
mysql>
mysql> SELECT DATE_ADD("2006-07-00", INTERVAL 1 DAY);
+----------------------------------------+
| DATE_ADD("2006-07-00", INTERVAL 1 DAY) |
+----------------------------------------+
| NULL |
+----------------------------------------+
1 row in set, 1 warning (0.00 sec)
mysql>
If the resulting date has a day that is larger than the maximum day for the new month, the day is adjusted to the maximum days in the new month.
mysql>
mysql> SELECT DATE_ADD("1998-01-30", INTERVAL 1 MONTH);
+------------------------------------------+
| DATE_ADD("1998-01-30", INTERVAL 1 MONTH) |
+------------------------------------------+
| 1998-02-28 |
+------------------------------------------+
1 row in set (0.00 sec)
mysql>
If you add to or subtract from a date value something that contains a time part, the result is automatically converted to a datetime value.
mysql>
mysql> SELECT DATE_ADD("1999-01-01", INTERVAL 1 DAY);
+----------------------------------------+
| DATE_ADD("1999-01-01", INTERVAL 1 DAY) |
+----------------------------------------+
| 1999-01-02 |
+----------------------------------------+
1 row in set (0.00 sec)
mysql>
SELECT "2005-03-32" + INTERVAL 1 MONTH;
mysql>
mysql>
mysql> SELECT "2005-03-32" + INTERVAL 1 MONTH;
+---------------------------------+
| "2005-03-32" + INTERVAL 1 MONTH |
+---------------------------------+
| NULL |
+---------------------------------+
1 row in set, 1 warning (0.00 sec)
mysql>
SELECT DATE_ADD("1992-59:59.000002", "1.999999" SECOND_MICROSECOND);
mysql>
mysql> SELECT DATE_ADD("1992-12-31 23:59:59.000002", "1.999999" SECOND_MICROSECOND);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ""1.999999" SECOND_MICROSECOND)" at line 1
mysql>
SELECT DATE_ADD("1997-59:59", "1:1" MINUTE_SECOND);
mysql>
mysql> SELECT DATE_ADD("1997-12-31 23:59:59", "1:1" MINUTE_SECOND);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ""1:1" MINUTE_SECOND)" at line 1
mysql>
SELECT DATE_ADD("1997-59:59", 1 DAY);
mysql>
mysql> SELECT DATE_ADD("1997-12-31 23:59:59", 1 DAY);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "1 DAY)" at line 1
mysql>
SELECT DATE_ADD("1997-59:59", 1 SECOND);
mysql>
mysql> SELECT DATE_ADD("1997-12-31 23:59:59", 1 SECOND);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "1 SECOND)" at line 1
mysql>
SELECT DATE_ADD("1998-00:00", "-1 10" DAY_HOUR);
mysql>
mysql> SELECT DATE_ADD("1998-01-01 00:00:00", "-1 10" DAY_HOUR);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ""-1 10" DAY_HOUR)" at line 1
mysql>
SELECT DATE_ADD("1999-01-01", INTERVAL 1 HOUR);
mysql>
mysql> SELECT DATE_ADD("1999-01-01", INTERVAL 1 HOUR);
+-----------------------------------------+
| DATE_ADD("1999-01-01", INTERVAL 1 HOUR) |
+-----------------------------------------+
| 1999-01-01 01:00:00 |
+-----------------------------------------+
1 row in set (0.00 sec)
mysql>
SELECT DATE_SUB("1998-00:00", "1 1:1:1" DAY_SECOND);
mysql>
mysql> SELECT DATE_SUB("1998-01-01 00:00:00", "1 1:1:1" DAY_SECOND);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ""1 1:1:1" DAY_SECOND)" at line 1
mysql>
SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
+-----------------------------------------+
| DATE_SUB("1998-01-02", INTERVAL 31 DAY) |
+-----------------------------------------+
| 1997-12-02 |
+-----------------------------------------+
1 row in set (0.00 sec)
mysql>