sql >> Base de Datos >  >> RDS >> Mysql

Cómo obtener el año y el mes de una fecha en MySQL

Problema:

Desea obtener el año y el mes de una fecha determinada en una base de datos MySQL.

Ejemplo:

Nuestra base de datos tiene una tabla llamada dates con datos en las columnas id y date .

id fecha
1 2008-04-21
2 1987-12-14

Extraigamos el year y el month a partir de la fecha.

Solución 1:

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

El resultado es:

año mes
2008 4
1987 12

Discusión:

Para obtener las columnas de año y mes, use EXTRACT(part FROM date) función. En esta solución, el argumento de la parte se reemplaza por YEAR y MONTH para obtener el year y el month por separado, cada uno en su propia columna.

Puede obtener más información sobre EXTRACT() en la documentación oficial de MySQL.

Solución 2:

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

El resultado es:

año_y_mes
200804
198712

Discusión:

Esta solución funciona exactamente igual que la anterior, pero YEAR_MONTH se usa para juntar el año y el mes en una columna en lugar de juntarlos por separado. Tenga en cuenta que los valores del año y el mes no están separados entre sí.

Solución 3:

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

El resultado es:

año mes
2008 4
1987 12

Discusión:

Esta vez, el YEAR() y el MONTH() Las funciones se utilizan para crear dos columnas. YEAR() devuelve el año y MONTH() devuelve el mes como un número.

Solución 4:

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

El resultado es:

año mes
2008 abril
1987 diciembre

Discusión:

Para obtener el nombre del mes, use MONTHNAME() función. El resultado muestra el nombre del mes en lugar del número del mes.

Solución 5:

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

El resultado es:

año_y_mes
2008-04
1987-12

Discusión:

Usa el DATE_FORMAT() función para mostrar date valores en un formato específico. Toma la date como primer argumento y una cadena que describe el formato de fecha deseado como segundo argumento. En nuestro caso, la cadena '%Y-%m ', %Y devuelve el año, - se usa como separador, y %m devuelve el mes numéricamente (se puede reemplazar por %M para obtener el nombre del mes).

Puede obtener más información sobre DATE_FORMAT() en la documentación oficial de MySQL.