Mysql
 sql >> Datenbank >  >> RDS >> Mysql

DAYOFWEEK() Beispiele – MySQL

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