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.