Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Retornar o dia, mês e ano no MySQL


O MySQL tem várias funções diferentes que nos permitem obter várias partes de datas – como dia, mês e ano – de uma data.

O DATE_FORMAT() Função


O DATE_FORMAT() A função é ótima se você deseja retornar as partes da data em um único campo.

Exemplo:
SELECT DATE_FORMAT('2035-12-19', '%W, %D %M %Y');

Resultado:
Wednesday, 19th December 2035

Você também pode retornar apenas os nomes curtos do dia e do mês, se esse for o resultado desejado:
SELECT DATE_FORMAT('2035-12-19', '%a, %D %b %Y');

Resultado:
Wed, 19th Dec 2035

Ou você pode retornar os números do mês do dia:
SELECT DATE_FORMAT('2035-12-19', '%d/%c/%Y');

Resultado:
19/12/2035

Você também pode retornar cada parte da data em seu próprio campo, se necessário:
SELECT 
    DATE_FORMAT('2035-12-19', '%d') AS Day,
    DATE_FORMAT('2035-12-19', '%c') AS Month,
    DATE_FORMAT('2035-12-19', '%Y') AS Year;

Resultado:
+------+-------+------+
| Day  | Month | Year |
+------+-------+------+
| 19   | 12    | 2035 |
+------+-------+------+

Veja esta lista completa de especificadores de formato para um resumo completo dos especificadores de formato que você pode usar para construir uma string de formato.

DATE_FORMAT() também aceita um argumento de localidade opcional que você pode usar para especificar o idioma dos nomes de dia e mês. Veja MySQL DATE_FORMAT() Exemplos para mais.

O EXTRACT() Função


O EXTRACT() A função permite extrair uma unidade especificada da data. Portanto, você pode usá-lo para extrair o dia, mês e ano (assim como outras unidades) da data.

Exemplo:
SELECT 
    EXTRACT(DAY FROM '2035-12-19') AS Day,
    EXTRACT(MONTH FROM '2035-12-19') AS Month,
    EXTRACT(YEAR FROM '2035-12-19') AS Year;

Resultado:
+------+-------+------+
| Day  | Month | Year |
+------+-------+------+
| 19   | 12    | 2035 |
+------+-------+------+

Funções para retornar uma unidade de data específica


O MySQL também possui algumas funções mais específicas que retornam uma unidade de data específica.

Abaixo está uma lista das funções que retornam o dia, mês e ano de uma data.

O DAYNAME() Função


O MySQL tem mais de uma função para retornar o dia. Isso ocorre porque há mais de uma maneira de representar o dia. O MySQL precisa saber se você deseja o nome do dia, o número do dia da semana, o dia do mês, o dia do ano, etc.

O DAYNAME() função retorna o nome do dia da semana:
SELECT DAYNAME('2035-12-19');

Resultado:
Wednesday

O DAYOFMONTH() Função


O DAYOFMONTH() função retorna o dia do número do mês.

Exemplo:
SELECT DAYOFMONTH('2035-12-19');

Resultado:
19

O DAY() Função


O DAY() função é na verdade um sinônimo para o DAYOFMONTH() função.

Exemplo:
SELECT DAY('2035-12-19');

Resultado:
19

Como esperado, o mesmo resultado que DAYOFMONTH() .

O DAYOFWEEK() Função


O DAYOFWEEK() A função retorna o índice do dia da semana para a data, conforme especificado pelo padrão ODBC (1 =domingo, 2 =segunda-feira, …, 7 =sábado).

Exemplo:
SELECT DAYOFWEEK('2035-12-19');

Resultado:
4

Veja WEEKDAY() abaixo para indexação diferente.

O WEEKDAY() Função


O WEEKDAY() função é semelhante a DAYOFWEEK() na medida em que retorna o índice da semana para a data. A diferença é que ele usa uma numeração de índice diferente (0 =segunda-feira, 1 =terça-feira, … 6 =Domingo).

Exemplo:
SELECT WEEKDAY('2035-12-19');

Resultado:
2

O DAYOFYEAR() Função


O DAYOFYEAR() função retorna o dia do ano para a data, no intervalo 1 para 366 .

Exemplo:
SELECT DAYOFYEAR('2035-12-19');

Resultado:
353

O MONTH() Função


O MONTH() função retorna o mês no intervalo 1 para 12 para janeiro a dezembro, ou 0 para datas que tenham uma parte de mês zero (como 0000-00-00 ).

Exemplo:
SELECT MONTH('2035-12-19');

Resultado:
12

O MONTHNAME() Função


Como o nome sugere, o MONTHNAME() função retorna o nome do mês. O idioma usado para o nome é controlado pelo valor do lc_time_names variável do sistema.

Exemplo:
SELECT MONTHNAME('2035-12-19');

Resultado:
December

O YEAR() Função


O YEAR() função retorna a parte do ano da data.

Exemplo:
SELECT YEAR('2035-12-19');

Resultado:
2035