Sie können den DAYOFWEEK() verwenden Funktion in MySQL, um den Wochentag aus einem Datum zurückzugeben.
In diesem Zusammenhang ein Rückgabewert von 1 entspricht Sonntag, 2 entspricht Montag usw.
Dieser Artikel enthält Beispiele zur Veranschaulichung.
Syntax
Die Syntax sieht so aus:
DAYOFWEEK(date)
Wobei date ist der Datumswert, von dem Sie den Wochentag zurückgeben möchten.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
SELECT DAYOFWEEK('2019-01-01') AS 'Result';
Ergebnis:
+--------+ | Result | +--------+ | 3 | +--------+
Wir können dies zusammen mit DAYNAME() ausführen Funktion, um zu sehen, welchem Tag es entspricht:
SET @date = '2019-01-01';
SELECT
@date,
DAYNAME(@date) AS 'Day Name',
DAYOFWEEK(@date) AS 'Day of Week';
Ergebnis:
+------------+----------+-------------+ | @date | Day Name | Day of Week | +------------+----------+-------------+ | 2019-01-01 | Tuesday | 3 | +------------+----------+-------------+
DAYOFWEEK() vs. DAYOFMONTH()
Hier ist ein Beispiel, um den Unterschied zwischen DAYOFWEEK() zu demonstrieren und DAYOFMONTH() Funktionen.
SET @date = '2019-01-20';
SELECT
@date,
DAYNAME(@date) AS 'Day Name',
DAYOFWEEK(@date) AS 'Day of Week',
DAYOFMONTH(@date) AS 'Day of Month';
Ergebnis:
+------------+----------+-------------+--------------+ | @date | Day Name | Day of Week | Day of Month | +------------+----------+-------------+--------------+ | 2019-01-20 | Sunday | 1 | 20 | +------------+----------+-------------+--------------+
Der DAYOFMONTH() Funktion gibt einen Wert zwischen 1 zurück und 31 (oder 0 für Datumsangaben mit einem Null-Tagesteil), der den Tag des Monats darstellt. Es wird auf 1 zurückgesetzt zu Beginn eines jeden Monats.
Der DAYOFWEEK() Funktion hingegen gibt einen Wert zwischen 1 zurück und 7 . Es wird auf 1 zurückgesetzt zu Beginn jeder Woche.
Ein Datenbankbeispiel
Hier gehen wir ähnlich vor wie in den vorherigen Beispielen, außer dass dieses Beispiel Daten aus einer Datenbank verwendet:
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;
Ergebnis:
+---------------------+-----------+-------------+ | Date/Time | Day Name | Day of Week | +---------------------+-----------+-------------+ | 2005-05-25 11:30:37 | Wednesday | 4 | +---------------------+-----------+-------------+
Aktuelles Datum/aktuelle Uhrzeit
Hier ist ein Beispiel für das Extrahieren des Tagesteils aus dem aktuellen Datum und der aktuellen Uhrzeit (die mit NOW() zurückgegeben werden Funktion).
SELECT
NOW(),
DAYOFWEEK(NOW());
Ergebnis:
+---------------------+------------------+ | NOW() | DAYOFWEEK(NOW()) | +---------------------+------------------+ | 2018-06-26 07:42:31 | 3 | +---------------------+------------------+
Eine andere Möglichkeit, dies zu tun, ist die Verwendung von CURDATE() Funktion, die nur das Datum (aber nicht die Uhrzeit) zurückgibt.
SELECT
CURDATE(),
DAYOFWEEK(CURDATE());
Ergebnis:
+------------+----------------------+ | CURDATE() | DAYOFWEEK(CURDATE()) | +------------+----------------------+ | 2018-06-26 | 3 | +------------+----------------------+