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

Como obter o ano e o mês de uma data no MySQL

Problema:


Você deseja obter o ano e o mês de uma determinada data em um banco de dados MySQL.

Exemplo:


Nosso banco de dados tem uma tabela chamada dates com dados nas colunas id e date .
id data
1 21-04-2008
2 14-12-1987

Vamos extrair o year e o month a partir da data.

Solução 1:

SELECT
EXTRACT(YEAR FROM date) AS year,
EXTRACT(MONTH FROM date) AS month
FROM dates;

O resultado é:
ano mês
2008 4
1987 12

Discussão:


Para obter as colunas de ano e mês, use o EXTRACT(part FROM date) função. Nesta solução, o argumento part é substituído por YEAR e MONTH para obter o year e o month separadamente, cada um em sua própria coluna.

Você pode aprender mais sobre EXTRACT() na documentação oficial do MySQL.

Solução 2:

SELECT
EXTRACT(YEAR_MONTH FROM date) AS year_and_month
FROM dates;

O resultado é:
ano_e_mês
200804
198712

Discussão:


Esta solução funciona exatamente como a anterior, mas YEAR_MONTH é usado para obter o ano e o mês juntos em uma coluna em vez de obtê-los separadamente. Observe que os valores do ano e do mês não são separados um do outro.

Solução 3:

SELECT
YEAR(date) AS year,
MONTH(date) AS month
FROM dates;

O resultado é:
ano mês
2008 4
1987 12

Discussão:


Desta vez, o YEAR() e o MONTH() funções são usadas para criar duas colunas. YEAR() retorna o ano e MONTH() retorna o mês como um número.

Solução 4:

SELECT
YEAR(date) AS year,
MONTHNAME(date) AS month
FROM dates;

O resultado é:
ano mês
2008 abril
1987 Dezembro

Discussão:


Para obter o nome do mês, use o MONTHNAME() função. O resultado exibe o nome do mês em vez do número do mês.

Solução 5:

SELECT
DATE_FORMAT(date, '%Y-%m') AS year_and_month
FROM dates;

O resultado é:
ano_e_mês
2008-04
1987-12

Discussão:


Use o DATE_FORMAT() função para exibir date valores em um formato específico. Leva a date como o primeiro argumento e uma string descrevendo o formato de data desejado como o segundo argumento. No nosso caso, a string '%Y-%m ', %Y retorna o ano, ' - é usado como separador e %m devolve o mês numericamente (pode ser substituído por %M para obter o nome do mês).

Você pode aprender mais sobre DATE_FORMAT() na documentação oficial do MySQL.