Mysql
 sql >> Baza danych >  >> RDS >> Mysql

DAYOFWEEK() Przykłady – MySQL

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jakie są różnice między SQL a MySQL

  2. Połącz się zdalnie z MySQL

  3. Uwzględnić nagłówki podczas korzystania z funkcji SELECT INTO OUTFILE?

  4. Jak obliczyć miesięcznych aktywnych użytkowników (MAU) w MySQL?

  5. Przewodnik po projektowaniu bazy danych dla biuletynu w MySQL