Mega Code Archive

 
Categories / MySQL / Date Time
 

Date Calculations

/* 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;