Изучение различных методов получения дня недели в MySQL

В MySQL существует несколько методов получения дня недели по заданной дате. В этой статье будут рассмотрены различные подходы с примерами кода, которые помогут вам понять и реализовать их в запросах MySQL.

Метод 1: функция ДЕНЬНЕДЕЛИ
Функция ДЕНЬНЕДЕЛИ возвращает индекс дня недели (1 для воскресенья, 2 для понедельника и т. д.). Вот пример того, как его использовать:

SELECT DAYOFWEEK('2024-01-23') AS day_of_week;

Этот запрос вернет день недели для даты «2024-01-23», то есть воскресенья.

Метод 2: функция ДЕНЬНЕД
Функция ДЕНЬНЕД возвращает индекс дня недели (0 для понедельника, 1 для вторника и т. д.). Вот пример:

SELECT WEEKDAY('2024-01-23') AS day_of_week;

Этот запрос вернет 6, что указывает на то, что «2024-01-23» — это воскресенье (поскольку воскресенье — седьмой день, считая с нуля).

Метод 3: функция DAYNAME
Функция DAYNAME возвращает название дня недели. Вот пример:

SELECT DAYNAME('2024-01-23') AS day_of_week;

Этот запрос вернет «воскресенье» для даты «23 января 2024 г.».

Метод 4: функция DATE_FORMAT
Функция DATE_FORMAT позволяет форматировать дату в соответствии с определенной строкой формата. Чтобы получить день недели, вы можете использовать код формата «%W». Вот пример:

SELECT DATE_FORMAT('2024-01-23', '%W') AS day_of_week;

Этот запрос вернет «воскресенье» для даты «23 января 2024 г.».

Метод 5: пользовательское сопоставление
Вы можете создать собственное сопоставление дня недели с помощью оператора CASE. Вот пример:

SELECT 
  CASE DAYOFWEEK('2024-01-23')
    WHEN 1 THEN 'Sunday'
    WHEN 2 THEN 'Monday'
    WHEN 3 THEN 'Tuesday'
    WHEN 4 THEN 'Wednesday'
    WHEN 5 THEN 'Thursday'
    WHEN 6 THEN 'Friday'
    WHEN 7 THEN 'Saturday'
  END AS day_of_week;

Этот запрос вернет «воскресенье» для даты «23 января 2024 г.».

В этой статье мы рассмотрели различные методы получения дня недели в MySQL. Используя такие функции, как DAYOFWEEK, WEEKDAY, DAYNAME и DATE_FORMAT, а также пользовательское сопоставление с помощью оператора CASE, вы можете легко получить день недели из заданной даты в ваших запросах MySQL.