Mysql
 sql >> база данни >  >> RDS >> Mysql

Примери за DAYOFWEEK() – MySQL

Можете да използвате DAYOFWEEK() функция в MySQL за връщане на деня от седмицата от дата.

В този контекст връщана стойност от 1 съответства на неделя, 2 съответства на понеделник и т.н.

Тази статия съдържа примери за демонстрация.

Синтаксис

Синтаксисът е така:

DAYOFWEEK(date)

Където date е стойността на датата, от която искате да се върне денят от седмицата.

Пример

Ето пример за демонстрация.

SELECT DAYOFWEEK('2019-01-01') AS 'Result';

Резултат:

+--------+
| Result |
+--------+
|      3 |
+--------+

Можем да изпълним това заедно с DAYNAME() функция, за да видите на кой ден съответства:

SET @date = '2019-01-01';
SELECT 
    @date,
    DAYNAME(@date) AS 'Day Name',
    DAYOFWEEK(@date) AS 'Day of Week';

Резултат:

+------------+----------+-------------+
| @date      | Day Name | Day of Week |
+------------+----------+-------------+
| 2019-01-01 | Tuesday  |           3 |
+------------+----------+-------------+

DAYOFWEEK() срещу DAYOFMONTH()

Ето пример за демонстриране на разликата между DAYOFWEEK() и DAYOFMONTH() функции.

SET @date = '2019-01-20';
SELECT 
    @date,
    DAYNAME(@date) AS 'Day Name',
    DAYOFWEEK(@date) AS 'Day of Week',
    DAYOFMONTH(@date) AS 'Day of Month';

Резултат:

+------------+----------+-------------+--------------+
| @date      | Day Name | Day of Week | Day of Month |
+------------+----------+-------------+--------------+
| 2019-01-20 | Sunday   |           1 |           20 |
+------------+----------+-------------+--------------+

DAYOFMONTH() функцията връща стойност между 1 и 31 (или 0 за дати с част от нулев ден), което представлява деня от месеца. Връща се обратно на 1 в началото на всеки месец.

DAYOFWEEK() функцията от друга страна връща стойност между 1 и 7 . Връща се обратно на 1 в началото на всяка седмица.

Пример за база данни

Тук правим нещо подобно на предишните примери, с изключение на това, че този пример използва данни от база данни:

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;

Резултат:

+---------------------+-----------+-------------+
| Date/Time           | Day Name  | Day of Week |
+---------------------+-----------+-------------+
| 2005-05-25 11:30:37 | Wednesday |           4 |
+---------------------+-----------+-------------+

Текуща дата/час

Ето пример за извличане на частта от деня от текущата дата и час (които се връщат с помощта на NOW() функция).

SELECT 
    NOW(),
    DAYOFWEEK(NOW());

Резултат:

+---------------------+------------------+
| NOW()               | DAYOFWEEK(NOW()) |
+---------------------+------------------+
| 2018-06-26 07:42:31 |                3 |
+---------------------+------------------+

Друг начин да направите това е да използвате CURDATE() функция, която връща само датата (но не и часа).

SELECT 
    CURDATE(),
    DAYOFWEEK(CURDATE());   

Резултат:

+------------+----------------------+
| 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. Импортирайте CSV файл директно в MySQL

  2. Въведение в SQL индексите

  3. Печат за време с точност до милисекунда:Как да ги запишете в MySQL

  4. Как NOT LIKE работи в MySQL

  5. MySQL каза:Документация #1045 - Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:НЕ)