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 | +------------+----------------------+