Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exemplos de DAYOFWEEK() – MySQL


Você pode usar o DAYOFWEEK() função no MySQL para retornar o dia da semana de uma data.

Nesse contexto, um valor de retorno de 1 corresponde a domingo, 2 corresponde a segunda-feira, etc.

Este artigo contém exemplos para demonstrar.


Sintaxe


A sintaxe fica assim:
DAYOFWEEK(date)

Onde date é o valor de data do qual você deseja que o dia da semana seja retornado.

Exemplo


Aqui está um exemplo para demonstrar.
SELECT DAYOFWEEK('2019-01-01') AS 'Result';

Resultado:
+--------+
| Result |
+--------+
|      3 |
+--------+

Podemos executar isso junto com o DAYNAME() função para ver a que dia 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 |
+------------+----------+-------------+

DAYOFWEEK() vs DAYOFMONTH()


Aqui está um exemplo para demonstrar a diferença entre o DAYOFWEEK() e DAYOFMONTH() funções.
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 |
+------------+----------+-------------+--------------+

O DAYOFMONTH() função retorna um valor entre 1 e 31 (ou 0 para datas com parte do dia zero) que representa o dia do mês. Ele é redefinido para 1 no início de cada mês.

O DAYOFWEEK() por outro lado, retorna um valor entre 1 e 7 . Ele é redefinido para 1 no início de cada semana.

Um exemplo de banco de dados


Aqui, fazemos algo semelhante aos exemplos anteriores, exceto que este exemplo usa dados de um banco de dados:
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 |
+---------------------+-----------+-------------+

Data/hora atual


Aqui está um exemplo de extração da parte do dia da data e hora atuais (que é retornada usando o NOW() função).
SELECT 
    NOW(),
    DAYOFWEEK(NOW());

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

Outra maneira de fazer isso é usar o CURDATE() função, que retorna apenas a data (mas não a hora).
SELECT 
    CURDATE(),
    DAYOFWEEK(CURDATE());   

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