Учебник по SQL

SQL ГЛАВНАЯ Введение в SQL Синтаксис SQL Выбор SQL SQL выбрать отдельный SQL Где SQL И, Или, Не Порядок SQL по SQL вставить в Нулевые значения SQL Обновление SQL SQL Удалить SQL выберите вверху SQL Мин. и Макс. Количество SQL, среднее, сумма SQL нравится Подстановочные знаки SQL SQL входящий SQL между Псевдонимы SQL SQL-соединения Внутреннее соединение SQL Левое соединение SQL SQL правое соединение Полное соединение SQL Самостоятельное присоединение SQL Союз SQL Группа SQL по SQL Имея SQL существует SQL Любой, Все SQL выбрать в SQL вставить в выбор SQL-кейс Нулевые функции SQL Хранимые процедуры SQL Комментарии SQL SQL-операторы

База данных SQL

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

Ссылки на SQL

Ключевые слова SQL Функции MySQL Функции SQL-сервера Функции MS Access Краткое руководство по SQL

Примеры SQL

Примеры SQL SQL-викторина SQL-упражнения SQL-сертификат

SQL, работающий с датами


Даты SQL

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

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


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

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

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

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

  • DATE - формат ГГГГ-ММ-ДД
  • DATETIME - формат: ГГГГ-ММ-ДД ЧЧ:МИ:СС
  • SMALLDATETIME - формат: ГГГГ-ММ-ДД ЧЧ:МИ:СС
  • TIMESTAMP - формат: уникальный номер

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


SQL, работающий с датами

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

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

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'

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

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