Работа с датой и временем в MySQL
В данной статье мы поговорим о том как работать с датой и временем в MySQL. Посмотрим как сохранять и извлекать значения данного типа из таблиц.
Форматы даты и времени в MySQL
MySQL поддерживает несколько форматов даты и времени:
- DATE - хранит значение даты в формате ГГГГ-ММ-ДД. Например 2019-03-28
- DATETIME - хранит значение даты и времени в формате ГГГГ-ММ-ДД HH:MM:SS. Например, 2019-03-28 10:00:00. Диапазон поддерживаемых значений - от 1000-01-01 00:00:00 до 9999-12-31 23:59:59
- TIMESTAMP - похож на DATETIME, с небольшими отличиями, зависящими от версии MySQL и режима в котором запущен сервер
Создание таблицы с колонками DATE и DATETIME
CREATE TABLE `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 имеет тип DATETIME, так как предполагается, что нам необходимо записывать точное время и дату осуществления заказа. Точное время доставки, как правило неизвестно, поэтому колонка order_delivery имеет тип DATE, необходимый для фиксации даты доставки.
Формат даты и времени может быть следующий:
2019-03-28 10:00:00
20190328100000
2019/03/28 10.00.00
2019*03*28*10*00*00
Как видите, MySQL обеспечивает широкие и гибкие возможности по форматирванию даты и времени.
В добавок к механизму хранения даты и времени, в MySQL есть большой набор функций для работы датой и временем. Далее представлены некоторые из них:
- ADDDATE() - Суммирует даты
- CURDATE() - Возвращает текущую дату
- CURTIME() - Возвращает текущее системное время
- DATE_FORMAT() - Форматирует дату
- DAYNAME() - Возвращает имя дня недели
- DAYOFMONTH() - Возвращает день месяца (1-31)
- DAYOFYEAR() - Возвращает день года (1-366)
- FROM_UNIXTIME() - Форматирует дату, представленную типом UNIX timestamp
- HOUR() - Извлекает часы
- NOW() - Возвращает текущую дату и время
Вот такие развитые средства содержит MySQL для работы с датой и временем.
-
- Михаил Русаков
Комментарии (2):
опечатка TETIME -> DATETIME
Ответить
Спасибо! Исправлено.
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.