Поскольку MySQL отличается большим разнообразием календарных и временных типов данных, неудивительно, что в этой СУБД предусмотрено немало функций для обработки календарных и временных значений. Набор функций, предназначенных для обработки дат и времени, имеющихся в арсенале MySQL, гораздо более разнообразен, чем в любой другой реляционной СУБД. Перечень наиболее часто используемых функций даты и времени MySQL приводится в табл. 7.4.
Функции даты и времени
Функции даты и времени
Как всегда, начнем с самого простейшего - с получения текущей даты и времени. Это можно сделать с помощью функции NOW() , возвращающей текущую дату и время в формате YYYY-MM-DD HH:MM:SS.
Функции даты и времени
Функции CURTIME() и CURDATE() являются более специализированными вариантами функции NOW() , возвращая только текущую дату или текущее время.
Функции даты и времени
Временные метки UNIX (количество секунд, прошедших с 1970-01-01, 00:00:00 до заданного момента времени) можно получить с помощью функции UNIX_TIMESTAMP(). Если аргумент не задан, временная метка возвращается относительно текущей даты, а если аргумент указан, то временная метка задается относительно этой даты.
Функции даты и времени
Функции даты и времени
Функции даты и времени
Функции даты и времени
Кроме функций анализа и обработки значений даты и времени, MySQL также имеет в своем арсенале функции, предназначенные для выполнения вычислений с использованием даты и времени. Важнейшими из них являются функции DATE_ADD() и DATE_ SUB() , предназначенные для прибавления и вычитания значений даты соответственно.
Первым аргументом этих функций является начальная дата, представленная в формате YYYY-MM-DD HH:MM:SS или в формате YYYYMMDDHHMMSS. Второй аргумент состоит из трех составляющих: ключевого слова INTERVAL, значения интервала, которое будет суммироваться или вычитаться из начальной даты, и ключевого слова, отображающего формат представления интервала. Значение интервала и следующие за ним ключевые слова должны соответствовать значениям, представленным в табл. 7.5.
Функции даты и времени
Объясним это на простых примерах. Первый пример прибавляет шесть (INTERVAL 6 MONTH) месяцев к дате и возвращает результат.
Функции даты и времени
Следующий пример прибавляет 12 дней, 3 часа и 45 минут к строковому значению и отображает полученный результат в виде временной метки.
Функции даты и времени
Функции даты и времени
Эта функция может очень пригодиться при необходимости вычислить интервал между двумя датами. Для того чтобы проиллюстрировать это, рассмотрим следующий простой пример таблицы, содержащей имена пользователей и даты их рождения.
Функции даты и времени
Функции даты и времени
А вот еще один пример - база данных видеотеки, содержащая перечень абонентов, названия арендованных ими кинофильмов и даты, когда эти фильмы были выданы и возвращены.
Функции даты и времени
Предположим, что максимальный срок, который кассета может находиться у абонента, составляет 4 дня. Таким образом, можно определить, кто из абонентов задержал у себя кассету больше допустимого срока (и кому из них придется заплатить за это штраф).
Функции даты и времени