SQL/MySQL/Function/Right

Материал из SQL эксперт
Перейти к: навигация, поиск

Function: RIGHT

/*
mysql> Drop table Bird;
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE Bird (
    ->     name VARCHAR(20),
    ->     owner VARCHAR(20),
    ->     species VARCHAR(20),
    ->     sex CHAR(1),
    ->     birth DATE,
    ->     death DATE
    -> );
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO  Bird VALUES ("BlueBird","Joe","Car","f","1999-03-30",NULL);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO  Bird VALUES ("RedBird","Yin","Bus","m","1979-04-30",NULL);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO  Bird VALUES ("RedBird","Yin","Bus","m","1998-01-30",NULL);
Query OK, 1 row affected (0.00 sec)
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.01 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 ORDER BY age;
+----------+------------+------------+------+
| name     | birth      | CURDATE()  | age  |
+----------+------------+------------+------+
| BlueBird | 1999-03-30 | 2005-10-09 |    6 |
| RedBird  | 1998-01-30 | 2005-10-09 |    7 |
| RedBird  | 1979-04-30 | 2005-10-09 |   26 |
+----------+------------+------------+------+
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 ORDER BY age;