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