Работа с датой и временем в MySQL

В этой статье мы рассмотрим основы работы с датой и временем в MySQL.

Формат даты и времени

MySQL date format поддерживает несколько форматов даты и времени. Их можно определить следующим образом:

DATE — хранит значение даты в виде ГГГГ-ММ-ДД. Например, 2008-10-23.
DATETIME — хранит значение даты и времени в виде ГГГГ-MM-ДД ЧЧ:ММ:СС. Например, 2008-10-23 10:37:22. Поддерживаемый диапазон дат и времени: 1000-01-01 00:00:00 до 9999-12-31 23:59:59
TIMESTAMP — похож на DATETIME с некоторыми различиями в зависимости от версии MySQL и режима, в котором работает сервер.

Создание полей даты и времени

Таблица, содержащая типы данных DATE и DATETIME, создается так же, как и другие столбцы. Например, мы можем создать новую таблицу под названием orders, которая содержит столбцы номера заказа, заказанного товара, даты заказа и даты доставки заказа:

CREATE TABLE `MySampleDB`.`orders` (
  `order_no` INT  NOT NULL AUTO_INCREMENT,
  `order_item` TEXT  NOT NULL,
  `order_date` DATETIME  NOT NULL,
  `order_delivery` DATE  NOT NULL,
  PRIMARY KEY (`order_no`)
)
ENGINE = InnoDB;

Столбец ORDER_DATE — это поле типа MySQL DATE TIME, в которое мы записываем дату и время, когда был сделан заказ. Для даты доставки невозможно предсказать точное время, поэтому мы записываем только дату.

Форматы даты и времени

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

Например, все следующие форматы являются правильными:

2008-10-23 10:37:22
20081023103722
2008/10/23 10.37.22
2008*10*23*10*37*22

Функции даты и времени

MySQL содержит множество функций, которые используются для обработки даты и времени. В приведенной ниже таблице представлен список наиболее часто используемых функций:

Функция Описание
ADDDATE() Добавляет дату.
ADDTIME() Добавляет время.
CONVERT_TZ() Конвертирует из одного часового пояса в другой.
CURDATE() Возвращает текущую дату.
CURTIME() Возвращает текущее системное время.
DATE_ADD() Добавляет одну дату к другой.
MySQL DATE_FORMAT() Задает указанный формат даты.
 DATE() Извлекает часть даты из даты или выражения дата-время.
 DATEDIFF() Вычитает одну дату из другой.
 DAYNAME() Возвращает день недели.
 DAYOFMONTH() Возвращает день месяца (1-31).
 DAYOFWEEK() Возвращает индекс дня недели из аргумента.
 DAYOFYEAR() Возвращает день года (1-366).
 EXTRACT Извлекает часть даты.
 FROM_DAYS() Преобразует номер дня в дату.
 FROM_UNIXTIME() Задает формат даты в формате UNIX.
 MySQL DATE_SUB() Вычитает одну дату из другой.
 HOUR() Извлекает час.
 LAST_DAY Возвращает последний день месяца для аргумента.
 MAKEDATE() Создает дату из года и дня года.
 MAKETIME () Возвращает значение времени.
 MICROSECOND() Возвращает миллисекунды из аргумента.
 MINUTE() Возвращает минуты из аргумента.
 MONTH() Возвращает месяц из переданной даты.
 MONTHNAME() Возвращает название месяца.
 NOW() Возвращает текущую дату и время.
 PERIOD_ADD() Добавляет интервал к месяцу-году.
 PERIOD_DIFF() Возвращает количество месяцев между двумя периодами.
 QUARTER() Возвращает четверть часа из переданной даты в качестве аргумента.
 SEC_TO_TIME() Конвертирует секунды в формат ‘ЧЧ:MM:СС’.
 SECOND() Возвращает секунду (0-59).
 MySQL STR_TO_DATE() Преобразует строку в дату.
 SUBTIME() Вычитает время.
 SYSDATE() Возвращает время, в которое была выполнена функция.
 TIME_FORMAT() Задает формат времени.
 TIME_TO_SEC() Возвращает аргумент, преобразованный в секунды.
 TIME() Выбирает часть времени из выражения, передаваемого в качестве аргумента.
 TIMEDIFF() Вычитает время.
 TIMESTAMP() С одним аргументом эта функция возвращает дату или выражение дата-время. С двумя аргументами возвращается сумма аргументов.
 TIMESTAMPADD() Добавляет интервал к дате-времени.
 TIMESTAMPDIFF() Вычитает интервал из даты — времени.
 TO_DAYS() Возвращает аргумент даты, преобразованный в дни.
 UNIX_TIMESTAMP() Извлекает дату-время в формате UNIX в формат, принимаемый MySQL.
 UTC_DATE() Возвращает текущую дату по универсальному времени (UTC).
 UTC_TIME() Возвращает текущее время по универсальному времени (UTC).
 UTC_TIMESTAMP() Возвращает текущую дату-время по универсальному времени (UTC).
 WEEK() Возвращает номер недели.
 WEEKDAY() Возвращает индекс дня недели.
 WEEKOFYEAR() Возвращает календарную неделю даты (1-53).
 YEAR() Возвращает год.
 YEARWEEK() Возвращает год и неделю.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

  bigmir)net TOP 100  - .  E-mail: sitesnulyaru@gmail.com