stone_wings
13-04-2008, 02:31
Вот собсно ковырял манку (MySql) 5.0 решил попробывать..
mysql> select name, birth, curdate(), (year(curdate())-year(birth)) - (right(curdate(),5)<right(birth,5)) as age from pet;
Но... Почему то заместь 11ти лет показует 10ть... Учитывая что, как бы, выбираем только по году.... В общем кто знает, прокоментируйте плз.
+--------- ----+----------------+----------- ---+------+
| name | birth | curdate() | age |
+--------------+----------------+---------------+------+
| Whistler_3 | 1997-12-09 | 2008-04-13 | 10 |
| Whistler_3 | 1997-12-10 | 2008-04-13 | 10 |
| Whistler_3 | 1997-12-10 | 2008-04-13 | 10 |
| Whistler_2 | 1997-12-09 | 2008-04-13 | 10 |
| Whistler_2 | 1997-12-09 | 2008-04-13 | 10 |
| Whistler_2 | 1997-12-11 | 2008-04-13 | 10 |
| Whistler_2 | 1997-12-09 | 2008-04-13 | 10 |
| Whistler_1 | 1997-12-11 | 2008-04-13 | 10 |
| Whistler_1 | 1997-12-09 | 2008-04-13 | 10 |
| Whistler_1 | 1997-12-11 | 2008-04-13 | 10 |
| Whistler_1 | 1997-12-09 | 2008-04-13 | 10 |
+----------- --+----------------+---------------+------+
mysql> select name, birth, curdate(), (year(curdate())-year(birth)) - (right(curdate(),5)<right(birth,5)) as age from pet;
Но... Почему то заместь 11ти лет показует 10ть... Учитывая что, как бы, выбираем только по году.... В общем кто знает, прокоментируйте плз.
+--------- ----+----------------+----------- ---+------+
| name | birth | curdate() | age |
+--------------+----------------+---------------+------+
| Whistler_3 | 1997-12-09 | 2008-04-13 | 10 |
| Whistler_3 | 1997-12-10 | 2008-04-13 | 10 |
| Whistler_3 | 1997-12-10 | 2008-04-13 | 10 |
| Whistler_2 | 1997-12-09 | 2008-04-13 | 10 |
| Whistler_2 | 1997-12-09 | 2008-04-13 | 10 |
| Whistler_2 | 1997-12-11 | 2008-04-13 | 10 |
| Whistler_2 | 1997-12-09 | 2008-04-13 | 10 |
| Whistler_1 | 1997-12-11 | 2008-04-13 | 10 |
| Whistler_1 | 1997-12-09 | 2008-04-13 | 10 |
| Whistler_1 | 1997-12-11 | 2008-04-13 | 10 |
| Whistler_1 | 1997-12-09 | 2008-04-13 | 10 |
+----------- --+----------------+---------------+------+