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