Меню
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON PHP КАК
     ❯   

SQL Учебник


SQL БАЗА ДАННЫХ


SQL Справочник


SQL Примеры



SQL DATE



ДАТЫ

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

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


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

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

  • DATE - формат YYYY-MM-DD
  • DATETIME - формат: YYYY-MM-DD HH:MI:SS
  • TIMESTAMP - формат: YYYY-MM-DD HH:MI:SS
  • YEAR - формат YYYY или YY

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

  • DATE - формат YYYY-MM-DD
  • DATETIME - формат: YYYY-MM-DD HH:MI:SS
  • SMALLDATETIME - формат: YYYY-MM-DD HH:MI:SS
  • TIMESTAMP - формат: уникальное число

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


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

Вы можете легко сравнить две даты, если нет никакого компонента времени!

Предположим, что у нас есть следующая таблица "Orders":

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

Теперь мы хотим выбрать записи с порядковым номером "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

Теперь предположим, что таблица "Orders" выглядит следующим образом (обратите внимание на компонент time в столбце "OrderDate"):

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'

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

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



×

Связаться с отделом продаж

Если вы хотите использовать услуги schoolsw3 как образовательное учреждение, команда или предприятие, отправьте нам электронное письмо:
sales@schoolsw3.com

Сообщить об ошибке

Если вы хотите сообщить об ошибке или внести предложение, отправьте нам электронное письмо:
help@schoolsw3.com

Schoolsw3 оптимизирован для обучения и подготовки. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно проверяются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего контента.
При использовании Schoolsw3 вы соглашаетесь прочитать и принять наши условия использования,
политику использования файлов cookie и конфиденциальности.

Авторское право 1999- © Copyright. Все права защищены. Schoolsw3 работает на SW3.CSS.