Aquí hay tres formas de devolver el nombre del mes de una fecha en MariaDB.
El MONTHNAME()
Función
El MONTHNAME()
La función está diseñada específicamente para devolver el nombre del mes de una fecha. Para hacer esto, pase la fecha a la función cuando la llame. Se devolverá el nombre completo del mes.
Ejemplo:
SELECT MONTHNAME('2021-08-19');
Resultado:
+-------------------------+ | MONTHNAME('2021-08-19') | +-------------------------+ | August | +-------------------------+
El idioma utilizado para el nombre del mes está controlado por el valor de lc_time_names
variable del sistema. Ver MONTHNAME()
para ver un ejemplo de cómo esto afecta la salida.
El DATE_FORMAT()
Función
El DATE_FORMAT()
La función da formato a una fecha dada en un formato específico. Usted especifica la fecha y el formato cuando llama a la función.
Puede devolver el nombre completo del mes pasando %M
como cadena de formato.
Ejemplo:
SELECT DATE_FORMAT('2021-08-19', '%M');
Resultado:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%M') | +---------------------------------+ | August | +---------------------------------+
Al igual que con MONTHNAME()
, el idioma utilizado para el nombre del mes está controlado por el valor de lc_time_names
variable del sistema. Sin embargo, el DATE_FORMAT()
La función acepta un tercer argumento opcional que le permite especificar la configuración regional.
Este es un ejemplo de cómo especificar una configuración regional:
SELECT DATE_FORMAT('2021-08-19', '%M', 'ca_ES');
Resultado:
+------------------------------------------+ | DATE_FORMAT('2021-08-19', '%M', 'ca_ES') | +------------------------------------------+ | agost | +------------------------------------------+
Nombre de mes corto
Pasando %b
al DATE_FORMAT()
La función devuelve el nombre corto del mes.
Ejemplo:
SELECT DATE_FORMAT('2021-08-19', '%b');
Resultado:
+---------------------------------+ | DATE_FORMAT('2021-08-19', '%b') | +---------------------------------+ | Aug | +---------------------------------+
Esto podría replicarse con MONTHNAME()
función usando LEFT()
para tomar los primeros 3 caracteres del nombre del mes.
Ejemplo:
SELECT LEFT(MONTHNAME('2021-08-19'), 3);
Resultado:
+----------------------------------+ | LEFT(MONTHNAME('2021-08-19'), 3) | +----------------------------------+ | Aug | +----------------------------------+
El mismo concepto podría lograrse convirtiendo el resultado de MONTHNAME()
a un tipo de datos de tres caracteres con una función como CAST()
.
Sin embargo, aunque este enfoque funciona en en_US
, es posible que no siempre funcione en otros idiomas. Por ejemplo:
SET lc_time_names = 'th_TH';
SELECT
DATE_FORMAT('2021-08-19', '%b') AS "Short 1",
LEFT(MONTHNAME('2021-08-19'), 3) AS "Short 2",
MONTHNAME('2021-08-19') AS "Full";
Resultado:
+----------+-----------+-----------------------+ | Short 1 | Short 2 | Full | +----------+-----------+-----------------------+ | ส.ค. | สิง | สิงหาคม | +----------+-----------+-----------------------+