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

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

A continuación hay tres enfoques que puede usar para obtener el nombre del día de una fecha en MariaDB.

Dos de estos enfoques devuelven el nombre completo del día y uno devuelve el nombre abreviado del día.

El DAYNAME() Función

El DAYNAME() La función está diseñada específicamente para devolver el nombre del día a partir de una fecha. Simplemente pase la fecha al llamar a la función y devolverá el nombre completo del día.

Ejemplo:

SELECT DAYNAME('2021-08-19');

Resultado:

+-----------------------+
| DAYNAME('2021-08-19') |
+-----------------------+
| Thursday              |
+-----------------------+

El idioma utilizado para el nombre del día está controlado por el valor de lc_time_names variable del sistema. Ver DAYNAME() 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 día de la semana pasando %W como cadena de formato.

Ejemplo:

SELECT DATE_FORMAT('2021-08-19', '%W');

Resultado:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%W') |
+---------------------------------+
| Thursday                        |
+---------------------------------+

Al igual que con DAYNAME() , el idioma utilizado para el nombre del día 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', '%W', 'ca_ES');

Resultado:

+------------------------------------------+
| DATE_FORMAT('2021-08-19', '%W', 'ca_ES') |
+------------------------------------------+
| dijous                                   |
+------------------------------------------+

Nombre de día corto

Pasando %a al DATE_FORMAT() La función devuelve el nombre corto del día de la semana.

Ejemplo:

SELECT DATE_FORMAT('2021-08-19', '%a');

Resultado:

+---------------------------------+
| DATE_FORMAT('2021-08-19', '%a') |
+---------------------------------+
| Thu                             |
+---------------------------------+

Esto podría replicarse con DAYNAME() función usando LEFT() para tomar los primeros 3 caracteres del nombre del día de la semana.

Ejemplo:

SELECT LEFT(DAYNAME('2021-08-19'), 3);

Resultado:

+--------------------------------+
| LEFT(DAYNAME('2021-08-19'), 3) |
+--------------------------------+
| Thu                            |
+--------------------------------+

El mismo efecto también podría lograrse usando una función como CAST() para convertir el resultado a un tipo de datos con tres caracteres.

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', '%a') AS "Short 1",
    LEFT(DAYNAME('2021-08-19'), 3) AS "Short 2",
    DAYNAME('2021-08-19') AS "Full";

Resultado:

+---------+-----------+--------------------------+
| Short 1 | Short 2   | Full                     |
+---------+-----------+--------------------------+
| พฤ.     | พฤห       | พฤหัสบดี                   |
+---------+-----------+--------------------------+