Página 19
mysql> SELECT name, species, birth FROM pet ORDER BY species, birth DESC;
+----------+---------+------------+
| name | species | birth |
+----------+---------+------------+
| Chirpy | bird | 1998-09-11 |
| Whistler | bird | 1997-12-09 |
| Claws | cat | 1994-03-17 |
| Fluffy | cat | 1993-02-04 |
| Fang | dog | 1990-08-27 |
| Bowser | dog | 1989-08-31 |
| Buffy | dog | 1989-05-13 |
| Puffball | hamster | 1999-03-30 |
| Slim | snake | 1996-04-29 |
+----------+---------+------------+
Note que a palavra chave DESC aplica unicamente à coluna (nascimento); valores de espécie são classificados por ordem crescente.
Cálculos de Data
MySQL fornece várias funções que pode fazer cálculos em datas, por exemplo, para
calcular idades ou extrair partes das datas. Para determinar quantos anos tem seus animais de estimação, ele pega a diferença entre a data de nascimento e a data corrente. Converte as duas datas para dias, tomam a diferença, e divide por 365 (o número de dias em um ano):
mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 FROM pet;
+----------+-------------------------------------+
| name | (TO_DAYS(NOW())-TO_DAYS(birth))/365 |
+----------+-------------------------------------+
| Fluffy | 6.15 |
| Claws | 5.04 |
| Buffy | 9.88 |
| Fang | 8.59 |
| Bowser | 9.58 |
| Chirpy | 0.55 |
| Whistler | 1.30 |
| Slim | 2.92 |
| Puffball | 0.00 |
+----------+-------------------------------------+
Há algumas coisas que podem ser melhoradas. Primeiro, o resultado pode ser examinado mais facilmente se as filas que forem apresentadas em alguma ordem. Segundo, o título da coluna de idade não está significativo.
|