La función WEEKDAY recibe una fecha como argumento y devuelve un número identificando el día de la semana al que corresponde (de lunes a domingo).
WEEKDAY(
date,
return_type
)
- date: Fecha en formato datetime.
- return_type: Tipo de resultado a devolver. Si toma el valor 1, la semana comienza el domingo (día al que se asigna el número 1) y termina el sábado (día al que se asigna el número 7). Si toma el valor 2, la semana comienza el lunes (día al que se asigna el número 1) y termina el domingo (día al que se asigna el número 7). Por último, si toma el valor 3, la semana comienza el lunes (día al que se asigna el número 0) y termina el domingo (día al que se asigna el número 6).
La función WEEKDAY devuelve un número entero entre 0 y 6 o entre 1 y 7, en función del tipo de resultado solicitado.
El argumentro date puede ser introducido con la función DATE o con funciones o expresiones que devuelvan un valor con formato datetime. También puede ser introducido como una cadena de texto que contenga una fecha en alguno de los formatos permitidos, pero esta opción debe evitarse siempre que sea posible para evitar resultados inesperados. Si se recurre a esta opción, la función WEEKDAY utilizará la configuración regional y los ajustes de fecha y hora del equipo cliente con el fin de interpretar el texto del que extraer el valor correcto. De esta forma, las siguientes funciones (que reciben como argumento el mismo número real con diferente formato), devolverán el mismo valor: 7 (correspondiente al sábado).
Día de la semana = WEEKDAY("15/10/2016")
Día de la semana = WEEKDAY(42658)
Sin embargo -y como se ha comentado-, la interpretación de una fecha como "10/8/2016" dependerá de la configuración regional. Si ésta representa las fechas en formato "día/mes/año", se interpretará como el 10 de agosto de 2016. Por el contrario, si representa las fechas en formato "mes/día/año", se interpretará como el 8 de octubre de 2016.
Si return_type toma cualquier otro valor diferente a 1, 2 o 3, la función WEEKDAY devolverá un error.
En este ejemplo se lee la fecha de una venta y se devuelve el día de la semana con el argumento return_type tomando el valor 2 (valor para el que el lunes se representa con el número 1, el martes con el número 2,... y el domingo con el número 7):