mysql>
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.00 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', '20070730', '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 | 2007-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>
mysql> SELECT * FROM employee
-> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= start_date;
+------+------------+-----------+------------+------------+---------+----------+-------------+
| id | first_name | last_name | start_date | end_date | salary | city | description |
+------+------------+-----------+------------+------------+---------+----------+-------------+
| 6 | Linda | Green | 2007-07-30 | 1996-01-04 | 4322.78 | New York | Tester |
+------+------------+-----------+------------+------------+---------+----------+-------------+
1 row in set (0.00 sec)
mysql>
mysql>
mysql> drop table Employee;
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>
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 |