sql >> Base de Datos >  >> RDS >> MariaDB

3 formas de obtener el nombre del mes a partir de una fecha en MariaDB

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                  |
+----------+-----------+-----------------------+
| ส.ค.     | สิง        | สิงหาคม                |
+----------+-----------+-----------------------+