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

2 funciones que devuelven el nombre del mes de una fecha en MySQL

Las siguientes dos funciones nos permiten obtener el nombre del mes de una fecha en MySQL.

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 devuelve el nombre completo del mes.

Ejemplo:

SELECT MONTHNAME('2030-10-25');

Resultado:

October

El idioma utilizado para el nombre del mes está controlado por el valor de lc_time_names variable del sistema. Ver MONTHNAME() Ejemplos para un ejemplo de cómo esto afecta la salida. Consulte también Cómo establecer la configuración regional para la conexión actual en MySQL para obtener más información.

El DATE_FORMAT() Función

El DATE_FORMAT() La función devuelve una fecha dada en un formato específico. Para usar esta función, especifique la fecha y el formato deseado cuando llame a la función.

Puede devolver el nombre completo del mes pasando %M como cadena de formato.

Ejemplo:

SELECT DATE_FORMAT('2030-12-25', '%M');

Resultado:

December

El idioma utilizado para el nombre del mes está controlado por el valor de lc_time_names variable del sistema.

Nombre de mes corto

Pasando %b al DATE_FORMAT() La función devuelve el nombre corto del mes.

Ejemplo:

SELECT DATE_FORMAT('2030-12-25', '%b');

Resultado:

December

Esto podría replicarse con MONTHNAME() función usando LEFT() para tomar los primeros 3 caracteres del nombre del mes.

Ejemplo:

SELECT LEFT(MONTHNAME('2030-12-25'), 3);

Resultado:

December

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 como se esperaba en otros idiomas. Por ejemplo:

SET lc_time_names = 'th_TH';
SELECT 
    DATE_FORMAT('2030-12-25', '%b') AS "Short 1",
    LEFT(MONTHNAME('2030-12-25'), 3) AS "Short 2",
    MONTHNAME('2030-12-25') AS "Full";

Resultado:

+----------+-----------+-----------------------+
| Short 1  | Short 2   | Full                  |
+----------+-----------+-----------------------+
| ธ.ค.     | ธัน        | ธันวาคม                |
+----------+-----------+-----------------------+