Mysql
 sql >> Database >  >> RDS >> Mysql

DAYOFWEEK() Esempi – MySQL

Puoi usare il DAYOFWEEK() funzione in MySQL per restituire il giorno della settimana da una data.

In questo contesto, un valore restituito di 1 corrisponde a domenica, 2 corrisponde a lunedì, ecc.

Questo articolo contiene esempi da dimostrare.

Sintassi

La sintassi è questa:

DAYOFWEEK(date)

Dove date è il valore della data da cui vuoi restituire il giorno della settimana.

Esempio

Ecco un esempio da dimostrare.

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

Risultato:

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

Possiamo eseguirlo insieme a DAYNAME() funzione per vedere a quale giorno corrisponde:

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

Risultato:

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

DAYOFWEEK() vs DAYOFMONTH()

Ecco un esempio per dimostrare la differenza tra il DAYOFWEEK() e DAYOFMONTH() funzioni.

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

Risultato:

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

Il DAYOFMONTH() la funzione restituisce un valore compreso tra 1 e 31 (o 0 per date con una parte zero day) che rappresenta il giorno del mese. Torna a 1 all'inizio di ogni mese.

Il DAYOFWEEK() funzione d'altra parte, restituisce un valore compreso tra 1 e 7 . Torna a 1 all'inizio di ogni settimana.

Un esempio di database

Qui, facciamo una cosa simile agli esempi precedenti, tranne per il fatto che questo esempio utilizza i dati da un database:

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;

Risultato:

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

Data/ora corrente

Ecco un esempio di estrazione della parte del giorno dalla data e dall'ora correnti (che viene restituita utilizzando NOW() funzione).

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

Risultato:

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

Un altro modo per farlo è usare CURDATE() funzione, che restituisce solo la data (ma non l'ora).

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

Risultato:

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