Учебник по MySQL

ГЛАВНАЯ СТРАНИЦА MySQL Введение в MySQL СУРБД MySQL

MySQL SQL

MySQL SQL ВЫБРАТЬ MySQL MySQL ГДЕ MySQL И, ИЛИ, НЕ MySQL ЗАКАЗАТЬ ПО MySQL ВСТАВИТЬ В Значения MySQL NULL ОБНОВЛЕНИЕ MySQL MySQL УДАЛИТЬ ПРЕДЕЛ MySQL MySQL МИН и МАКС MySQL COUNT, СРЕДНЯЯ, СУММА MySQL НРАВИТСЯ Подстановочные знаки MySQL MySQL IN MySQL МЕЖДУ Псевдонимы MySQL MySQL присоединяется ВНУТРЕННЕЕ СОЕДИНЕНИЕ MySQL ЛЕВОЕ СОЕДИНЕНИЕ MySQL MySQL ПРАВОЕ СОЕДИНЕНИЕ ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ MySQL Самостоятельное присоединение к MySQL СОЕДИНЕНИЕ MySQL MySQL СГРУППИРОВАТЬ ПО MySQL ИМЕЕТ MySQL СУЩЕСТВУЕТ MySQL ЛЮБОЙ, ВСЕ MySQL ВСТАВИТЬ ВЫБРАТЬ СЛУЧАЙ MySQL Нулевые функции MySQL Комментарии MySQL Операторы MySQL

База данных MySQL

MySQL Создать БД Удаление базы данных MySQL MySQL Создать таблицу Таблица удаления MySQL Таблица изменений MySQL Ограничения MySQL MySQL не нулевой Уникальный MySQL Первичный ключ MySQL Внешний ключ MySQL Проверка MySQL MySQL по умолчанию Индекс создания MySQL Автоматическое увеличение MySQL Даты MySQL Представления MySQL

Ссылки на MySQL

Типы данных MySQL Функции MySQL

Примеры MySQL

Примеры MySQL Викторина MySQL MySQL-упражнения

MySQL работает с датами


Даты MySQL

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

Пока ваши данные содержат только часть даты, ваши запросы будут работать должным образом. Однако, если речь идет о временной части, все становится сложнее.


Типы данных даты MySQL

MySQL поставляется со следующими типами данных для хранения даты или значения даты/времени в базе данных:

  • DATE - формат ГГГГ-ММ-ДД
  • DATETIME - формат: ГГГГ-ММ-ДД ЧЧ:МИ:СС
  • TIMESTAMP - формат: ГГГГ-ММ-ДД ЧЧ:МИ:СС
  • YEAR - формат ГГГГ или ГГ

Примечание. Тип данных даты устанавливается для столбца при создании новой таблицы в базе данных!


Работа с датами

Посмотрите на следующую таблицу:

Таблица заказов

OrderId ProductName OrderDate
1 Geitost 2008-11-11
2 Camembert Pierrot 2008-11-09
3 Mozzarella di Giovanni 2008-11-11
4 Mascarpone Fabioli 2008-10-29

Теперь мы хотим выбрать записи с OrderDate "2008-11-11" из таблицы выше.

Мы используем следующее SELECTутверждение:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

Набор результатов будет выглядеть следующим образом:

OrderId ProductName OrderDate
1 Geitost 2008-11-11
3 Mozzarella di Giovanni 2008-11-11

Примечание. Две даты можно легко сравнить, если не используется компонент времени!

Теперь предположим, что таблица «Заказы» выглядит так (обратите внимание на добавленный компонент времени в столбце «Дата заказа»):

OrderId ProductName OrderDate
1 Geitost 2008-11-11 13:23:44
2 Camembert Pierrot 2008-11-09 15:45:21
3 Mozzarella di Giovanni 2008-11-11 11:12:01
4 Mascarpone Fabioli 2008-10-29 14:56:59

Если мы используем то же SELECTутверждение, что и выше:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

мы не получим никакого результата! Это связано с тем, что запрос ищет только даты без временной части.

Совет: чтобы ваши запросы были простыми и легкими в обслуживании, не используйте компоненты времени в датах, если в этом нет необходимости!