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 | +---------+-----------+--------------------------+ | พฤ. | พฤห | พฤหัสบดี | +---------+-----------+--------------------------+