Adding one month to start date : DATE_ADD « Date Time Functions « MySQL Tutorial






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>








14.10.DATE_ADD
14.10.1.DATE_ADD(date,INTERVAL expr unit)
14.10.2.DATE_ADD(curdate(), INTERVAL 1 MICROSECOND);
14.10.3.DATE_ADD(curdate(), INTERVAL 1 MINUTE);
14.10.4.DATE_ADD(curdate(), INTERVAL 1 HOUR);
14.10.5.DATE_ADD(curdate(), INTERVAL 1 DAY);
14.10.6.DATE_ADD(curdate(), INTERVAL 1 WEEK);
14.10.7.DATE_ADD(curdate(), INTERVAL 1 MONTH);
14.10.8.DATE_ADD(curdate(), INTERVAL 1 QUARTER);
14.10.9.DATE_ADD(curdate(), INTERVAL 1 YEAR);
14.10.10.DATE_ADD(curdate(), INTERVAL 1.1 SECOND_MICROSECOND)
14.10.11.DATE_ADD(curdate(), INTERVAL 1 SECOND);
14.10.12.DATE_ADD(curdate(), INTERVAL 1.1 SECOND);
14.10.13.DATE_ADD(curdate(), INTERVAL 1.1 MINUTE_MICROSECOND);
14.10.14.DATE_ADD(curdate(), INTERVAL 1.1 MINUTE_SECOND);
14.10.15.DATE_ADD(curdate(), INTERVAL 1.1 HOUR_MICROSECOND);
14.10.16.DATE_ADD(curdate(), INTERVAL 1.1 HOUR_SECOND);
14.10.17.DATE_ADD(curdate(), INTERVAL '1:1:1' HOUR_SECOND);
14.10.18.DATE_ADD(curdate(), INTERVAL 1.1 HOUR_MINUTE); (with dot)
14.10.19.DATE_ADD(curdate(), INTERVAL '1:1' HOUR_MINUTE);
14.10.20.DATE_ADD(curdate(), INTERVAL 1.1 DAY_MICROSECOND);
14.10.21.DATE_ADD(curdate(), INTERVAL '1 1:1:1' DAY_SECOND);
14.10.22.DATE_ADD(curdate(), INTERVAL '1 1:1' DAY_MINUTE);
14.10.23.DATE_ADD(curdate(), INTERVAL '1 1' DAY_HOUR);(wihtout :)
14.10.24.DATE_ADD(curdate(), INTERVAL 1.1 SECOND_MICROSECOND); (with dot)
14.10.25.DATE_ADD(curdate(), INTERVAL '1-1' YEAR_MONTH); (with minus sign)
14.10.26.DATE_ADD(curdate(), INTERVAL '1.1' YEAR_MONTH); (with dot)
14.10.27.Adding one day to a date: SELECT DATE_ADD('2006-05-01',INTERVAL 1 DAY);
14.10.28.Adding one month to a date: SELECT DATE_ADD('2006-05-01',INTERVAL 1 MONTH);
14.10.29.Adding one year to a date: SELECT DATE_ADD('2006-05-01',INTERVAL 1 YEAR);
14.10.30.Adding one month to start date
14.10.31.SELECT DATE_ADD('1997-12-31 23:59:59', 1 SECOND);
14.10.32.SELECT DATE_ADD('1997-12-31 23:59:59', 1 DAY);
14.10.33.SELECT DATE_ADD('1997-12-31 23:59:59', '1:1' MINUTE_SECOND);
14.10.34.SELECT DATE_SUB('1998-01-01 00:00:00', '1 1:1:1' DAY_SECOND);
14.10.35.SELECT DATE_ADD('1998-01-01 00:00:00', '-1 10' DAY_HOUR);
14.10.36.SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
14.10.37.SELECT DATE_ADD('1992-12-31 23:59:59.000002', '1.999999' SECOND_MICROSECOND);
14.10.38.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.
14.10.39.SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);
14.10.40.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.
14.10.41.Date arithmetic operations require complete dates
14.10.42.SELECT '2005-03-32' + INTERVAL 1 MONTH;