SQL/MySQL/Function/Right

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

Function: RIGHT

   <source lang="sql">

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