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