Date Calculations: extract parts of dates : Date Function « Date Time « SQL / MySQL

Date Calculations: extract parts of dates

```
/*

mysql> select * from Bird;
+----------+-------+---------+------+------------+-------+
| name     | owner | species | sex  | birth      | death |
+----------+-------+---------+------+------------+-------+
| BlueBird | Joe   | Car     | f    | 1999-03-30 | NULL  |
| RedBird  | Yin   | Bus     | m    | 1979-04-30 | NULL  |
| RedBird  | Yin   | Bus     | m    | 1998-01-30 | NULL  |
+----------+-------+---------+------+------------+-------+
3 rows in set (0.00 sec)

mysql> /*how old each a Bird is*/
mysql> SELECT name, birth, CURDATE(),
->        (YEAR(CURDATE())-YEAR(birth))
->         - (RIGHT(CURDATE(),5)<RIGHT(birth,5))
->        AS age
->        FROM Bird;
+----------+------------+------------+------+
| name     | birth      | CURDATE()  | age  |
+----------+------------+------------+------+
| BlueBird | 1999-03-30 | 2005-10-11 |    6 |
| RedBird  | 1979-04-30 | 2005-10-11 |   26 |
| RedBird  | 1998-01-30 | 2005-10-11 |    7 |
+----------+------------+------------+------+
3 rows in set (0.00 sec)

*/
Drop table Bird;

CREATE TABLE Bird (
name VARCHAR(20),
owner VARCHAR(20),
species VARCHAR(20),
sex CHAR(1),
birth DATE,
death DATE
);

INSERT INTO  Bird VALUES ('BlueBird','Joe','Car','f','1999-03-30',NULL);
INSERT INTO  Bird VALUES ('RedBird','Yin','Bus','m','1979-04-30',NULL);
INSERT INTO  Bird VALUES ('RedBird','Yin','Bus','m','1998-01-30',NULL);

select * from Bird;

/*how old each a Bird is*/

SELECT name, birth, CURDATE(),
(YEAR(CURDATE())-YEAR(birth))
- (RIGHT(CURDATE(),5)<RIGHT(birth,5))
AS age
FROM Bird;

```

Related examples in the same category

 1 Date data type manipulation 2 Get Day of Month for a date 3 Get the YEAR part of the date 4 Birthdays in the upcoming month 5 DATE_ADD() add a time interval to a given date 6 Calculation on Date data type 7 Date Calculations: calculate ages 8 Get sub date 9 Decomposing Dates or Times Using String Functions substrings. 10 Pull out the entire date or time part from DATETIME values using string-extraction functions such as LEFT( ) o