sql >> Base de Datos >  >> RDS >> Mysql

Ejemplos de DAYOFWEEK() – MySQL

Puedes usar el DAYOFWEEK() función en MySQL para devolver el día de la semana a partir de una fecha.

En este contexto, un valor de retorno de 1 corresponde al domingo, 2 corresponde al lunes, etc.

Este artículo contiene ejemplos para demostrar.

Sintaxis

La sintaxis es así:

DAYOFWEEK(date)

Donde date es el valor de fecha del que desea que se devuelva el día de la semana.

Ejemplo

Aquí hay un ejemplo para demostrarlo.

SELECT DAYOFWEEK('2019-01-01') AS 'Result';

Resultado:

+--------+
| Result |
+--------+
|      3 |
+--------+

Podemos ejecutar esto junto con DAYNAME() función para ver a qué día corresponde:

SET @date = '2019-01-01';
SELECT 
    @date,
    DAYNAME(@date) AS 'Day Name',
    DAYOFWEEK(@date) AS 'Day of Week';

Resultado:

+------------+----------+-------------+
| @date      | Day Name | Day of Week |
+------------+----------+-------------+
| 2019-01-01 | Tuesday  |           3 |
+------------+----------+-------------+

DÍA DE LA SEMANA() frente a DÍA DEL MES()

Aquí hay un ejemplo para demostrar la diferencia entre DAYOFWEEK() y DAYOFMONTH() funciones.

SET @date = '2019-01-20';
SELECT 
    @date,
    DAYNAME(@date) AS 'Day Name',
    DAYOFWEEK(@date) AS 'Day of Week',
    DAYOFMONTH(@date) AS 'Day of Month';

Resultado:

+------------+----------+-------------+--------------+
| @date      | Day Name | Day of Week | Day of Month |
+------------+----------+-------------+--------------+
| 2019-01-20 | Sunday   |           1 |           20 |
+------------+----------+-------------+--------------+

El DAYOFMONTH() la función devuelve un valor entre 1 y 31 (o 0 para fechas con una parte de día cero) que representa el día del mes. Se restablece a 1 al comienzo de cada mes.

El DAYOFWEEK() Por otro lado, la función devuelve un valor entre 1 y 7 . Se restablece a 1 al comienzo de cada semana.

Un ejemplo de base de datos

Aquí, hacemos algo similar a los ejemplos anteriores, excepto que este ejemplo usa datos de una base de datos:

USE sakila;
SELECT
  payment_date AS 'Date/Time',
  DAYNAME(payment_date) AS 'Day Name',
  DAYOFWEEK(payment_date) AS 'Day of Week'
FROM payment
WHERE payment_id = 1;

Resultado:

+---------------------+-----------+-------------+
| Date/Time           | Day Name  | Day of Week |
+---------------------+-----------+-------------+
| 2005-05-25 11:30:37 | Wednesday |           4 |
+---------------------+-----------+-------------+

Fecha/hora actual

Aquí hay un ejemplo de cómo extraer la parte del día de la fecha y hora actuales (que se devuelve usando NOW() función).

SELECT 
    NOW(),
    DAYOFWEEK(NOW());

Resultado:

+---------------------+------------------+
| NOW()               | DAYOFWEEK(NOW()) |
+---------------------+------------------+
| 2018-06-26 07:42:31 |                3 |
+---------------------+------------------+

Otra forma de hacer esto es usar CURDATE() función, que devuelve solo la fecha (pero no la hora).

SELECT 
    CURDATE(),
    DAYOFWEEK(CURDATE());   

Resultado:

+------------+----------------------+
| CURDATE()  | DAYOFWEEK(CURDATE()) |
+------------+----------------------+
| 2018-06-26 |                    3 |
+------------+----------------------+