MySQL / 5. Работа с датами и временем

Определение дня недели для даты

Задача
Вы хотите узнать, на какой день недели выпадает указанная дата.

Решение
Используйте функцию DAYNAME().

Обсуждение
Чтобы вывести название дня недели, примените функцию DAYNAME():

mysql> SELECT CURDATE(), DAYNAME(CURDATE());

+--------------+----------------------------+
| CURDATE() | DAYNAME(CURDATE()) |
+--------------+----------------------------+
| 2002-07-15 |              Monday            |
+--------------+----------------------------+

Функцию DAYNAME() удобно использовать в сочетании с другими методиками работы с датами. Например, чтобы узнать, каким днем недели будет первый день месяца, используйте выражение поиска первого дня месяца, приведенное ранее в этой главе, как аргумент функции DAYNAME():

mysql> SET @d = CURDATE();
mysql> SET @first = DATE_SUB(@d,INTERVAL DAYOFMONTH(@d)-1 DAY);
mysql> SELECT @d AS 'starting date',
-> @first AS '1st of month date',
-> DAYNAME(@first) AS '1st of month day';

+----------------+--------------------------+---------------------+
| starting date |     1st of month date   | 1st of month day |
+----------------+--------------------------+---------------------+
|  2002-07-15  | 2002-07-01 | Monday |
+----------------+--------------------------+---------------------+

Статьи по MySQL на эту тему:

Выбор записей по временным характеристикам
Вывод значений TIMESTAMP в удобном для чтения виде
Вычисления для високосных годов
Вычисления со значениями TIMESTAMP Задача
Использование значений TIMESTAMP

Вернуться в раздел: MySQL / 5. Работа с датами и временем