U kunt de DAYOFWEEK()
. gebruiken functie in MySQL om de dag van de week van een datum te retourneren.
In deze context is een retourwaarde van 1 komt overeen met zondag, 2 komt overeen met maandag, enz.
Dit artikel bevat voorbeelden om te demonstreren.
Syntaxis
De syntaxis gaat als volgt:
DAYOFWEEK(date)
Waar date
is de datumwaarde waarvan u de dag van de week wilt retourneren.
Voorbeeld
Hier is een voorbeeld om te demonstreren.
SELECT DAYOFWEEK('2019-01-01') AS 'Result';
Resultaat:
+--------+ | Result | +--------+ | 3 | +--------+
We kunnen dit uitvoeren naast de DAYNAME()
functie om te zien met welke dag het overeenkomt:
SET @date = '2019-01-01'; SELECT @date, DAYNAME(@date) AS 'Day Name', DAYOFWEEK(@date) AS 'Day of Week';
Resultaat:
+------------+----------+-------------+ | @date | Day Name | Day of Week | +------------+----------+-------------+ | 2019-01-01 | Tuesday | 3 | +------------+----------+-------------+
DAYOFWEEK() vs DAYOFMONTH()
Hier is een voorbeeld om het verschil te demonstreren tussen de DAYOFWEEK()
en DAYOFMONTH()
functies.
SET @date = '2019-01-20'; SELECT @date, DAYNAME(@date) AS 'Day Name', DAYOFWEEK(@date) AS 'Day of Week', DAYOFMONTH(@date) AS 'Day of Month';
Resultaat:
+------------+----------+-------------+--------------+ | @date | Day Name | Day of Week | Day of Month | +------------+----------+-------------+--------------+ | 2019-01-20 | Sunday | 1 | 20 | +------------+----------+-------------+--------------+
De DAYOFMONTH()
functie retourneert een waarde tussen 1 en 31 (of 0 voor datums met een dagdeel van nul) dat de dag van de maand vertegenwoordigt. Het wordt teruggezet naar 1 aan het begin van elke maand.
De DAYOFWEEK()
functie aan de andere kant, retourneert een waarde tussen 1 en 7 . Het wordt teruggezet naar 1 aan het begin van elke week.
Een databasevoorbeeld
Hier doen we hetzelfde als in de vorige voorbeelden, behalve dat dit voorbeeld gegevens uit een database gebruikt:
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;
Resultaat:
+---------------------+-----------+-------------+ | Date/Time | Day Name | Day of Week | +---------------------+-----------+-------------+ | 2005-05-25 11:30:37 | Wednesday | 4 | +---------------------+-----------+-------------+
Huidige datum/tijd
Hier is een voorbeeld van het extraheren van het daggedeelte van de huidige datum en tijd (die wordt geretourneerd met de NOW()
functie).
SELECT NOW(), DAYOFWEEK(NOW());
Resultaat:
+---------------------+------------------+ | NOW() | DAYOFWEEK(NOW()) | +---------------------+------------------+ | 2018-06-26 07:42:31 | 3 | +---------------------+------------------+
Een andere manier om dit te doen is door de CURDATE()
. te gebruiken functie, die alleen de datum retourneert (maar niet de tijd).
SELECT CURDATE(), DAYOFWEEK(CURDATE());
Resultaat:
+------------+----------------------+ | CURDATE() | DAYOFWEEK(CURDATE()) | +------------+----------------------+ | 2018-06-26 | 3 | +------------+----------------------+