Możesz użyć DAYOFWEEK()
funkcja w MySQL, która zwraca dzień tygodnia od daty.
W tym kontekście zwracana wartość 1 odpowiada niedzieli, 2 odpowiada poniedziałkowi itd.
Ten artykuł zawiera przykłady do zademonstrowania.
Składnia
Składnia wygląda tak:
DAYOFWEEK(date)
Gdzie date
to wartość daty, z której ma być zwracany dzień tygodnia.
Przykład
Oto przykład do zademonstrowania.
SELECT DAYOFWEEK('2019-01-01') AS 'Result';
Wynik:
+--------+ | Result | +--------+ | 3 | +--------+
Możemy uruchomić to razem z DAYNAME()
funkcja, aby zobaczyć, który dzień odpowiada:
SET @date = '2019-01-01'; SELECT @date, DAYNAME(@date) AS 'Day Name', DAYOFWEEK(@date) AS 'Day of Week';
Wynik:
+------------+----------+-------------+ | @date | Day Name | Day of Week | +------------+----------+-------------+ | 2019-01-01 | Tuesday | 3 | +------------+----------+-------------+
DAYOFWEEK() vs DAYOFMONTH()
Oto przykład pokazujący różnicę między DAYOFWEEK()
i DAYOFMONTH()
funkcje.
SET @date = '2019-01-20'; SELECT @date, DAYNAME(@date) AS 'Day Name', DAYOFWEEK(@date) AS 'Day of Week', DAYOFMONTH(@date) AS 'Day of Month';
Wynik:
+------------+----------+-------------+--------------+ | @date | Day Name | Day of Week | Day of Month | +------------+----------+-------------+--------------+ | 2019-01-20 | Sunday | 1 | 20 | +------------+----------+-------------+--------------+
DAYOFMONTH()
funkcja zwraca wartość pomiędzy 1 i 31 (lub 0 dla dat z częścią dnia zerowego), która reprezentuje dzień miesiąca. Wraca do 1 na początku każdego miesiąca.
DAYOFWEEK()
z drugiej strony, zwraca wartość z przedziału 1 i 7 . Wraca do 1 na początku każdego tygodnia.
Przykład bazy danych
Tutaj robimy coś podobnego do poprzednich przykładów, z tym wyjątkiem, że ten przykład używa danych z bazy danych:
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;
Wynik:
+---------------------+-----------+-------------+ | Date/Time | Day Name | Day of Week | +---------------------+-----------+-------------+ | 2005-05-25 11:30:37 | Wednesday | 4 | +---------------------+-----------+-------------+
Aktualna data/godzina
Oto przykład wyodrębnienia części dnia z bieżącej daty i godziny (która jest zwracana za pomocą funkcji NOW()
funkcja).
SELECT NOW(), DAYOFWEEK(NOW());
Wynik:
+---------------------+------------------+ | NOW() | DAYOFWEEK(NOW()) | +---------------------+------------------+ | 2018-06-26 07:42:31 | 3 | +---------------------+------------------+
Innym sposobem na to jest użycie CURDATE()
funkcja, która zwraca tylko datę (ale nie godzinę).
SELECT CURDATE(), DAYOFWEEK(CURDATE());
Wynik:
+------------+----------------------+ | CURDATE() | DAYOFWEEK(CURDATE()) | +------------+----------------------+ | 2018-06-26 | 3 | +------------+----------------------+