Работа с датами и временем в MySQL
Дата - это одна из наиболее используемых типов данных при работе с базами данных MySQL. В MySQL дата может храниться в различных форматах, включая дату, время, дату и время.
Одним из самых распространенных форматов даты в MySQL является "ГГГГ-ММ-ДД" (год-месяц-день) для хранения даты и "ЧЧ:ММ:СС" (часы-минуты-секунды) для хранения времени.
Примеры CREATE TABLE для хранения дат:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`dob` date NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `events` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`description` varchar(255) NOT NULL,
`start_date` datetime NOT NULL,
`end_date` datetime NOT NULL,
PRIMARY KEY (`id`)
);
Как использовать даты в MySQL:
1. Вставка значений даты и времени:
INSERT INTO users (name, dob) VALUES ('John Smith', '1980-05-27');
INSERT INTO events (title, description, start_date, end_date) VALUES ('New Year Party', 'Celebrate New Year', '2022-01-01 20:00:00', '2022-01-02 02:00:00');
2. Извлечение даты и времени из таблицы:
SELECT dob FROM users WHERE name = 'John Smith';
SELECT start_date, end_date FROM events WHERE title = 'New Year Party';
3. Форматирование даты и времени:
SELECT DATE_FORMAT(dob, '%m/%d/%Y') AS `Date of Birth` FROM users WHERE name = 'John Smith';
SELECT DATE_FORMAT(start_date, '%W, %M %e, %Y at %l:%i %p') AS `Start Time` FROM events WHERE title = 'New Year Party';
4. Добавление и вычитание времени или дат:
SELECT DATE_ADD('2022-01-01', INTERVAL 1 DAY);
SELECT DATE_SUB('2022-01-01 20:00:00', INTERVAL 1 HOUR);
5. Сравнение дат и времени:
SELECT * FROM users WHERE dob > '1980-01-01';
SELECT * FROM events WHERE start_date >= '2022-01-01 20:00:00' AND end_date <= '2022-01-02 02:00:00';
6. Вычисление разницы между датами:
SELECT DATEDIFF('2022-01-02', '2022-01-01');
SELECT TIMEDIFF('2022-01-02 02:00:00', '2022-01-01 20:00:00');
Однако, при использовании дат в MySQL следует учитывать особенности конкретных задач и строго следовать правилам, чтобы избежать ошибок и несоответствий в данных.