SQL Даты
Самой трудной частью при работе с датами, чтобы быть уверенным, что формат даты вы пытаетесь вставить, соответствует формату столбца даты в базе данных.
Функции даты MySQL
В следующей таблице перечислены наиболее важные встроенные функции даты в MySQL:
функция | Описание |
---|---|
NOW() | Возвращает текущую дату и время |
CURDATE() | Возвращает текущую дату |
CURTIME() | Возвращает текущее время |
DATE() | Извлечение даты часть даты или выражения даты / времени |
EXTRACT() | Возвращает одну часть даты / времени |
DATE_ADD() | Добавляет заданный интервал времени до даты |
DATE_SUB() | Вычитает заданный интервал времени от даты |
DATEDIFF() | Возвращает количество дней между двумя датами |
DATE_FORMAT() | дата Отображение / времени данные в различных форматах |
SQL Дата сервера Функции
В следующей таблице перечислены наиболее важные встроенные функции даты в SQL Server:
функция | Описание |
---|---|
GETDATE() | Возвращает текущую дату и время |
DATEPART() | Возвращает одну часть даты / времени |
DATEADD() | Добавляет или вычитает определенный интервал времени от даты |
DATEDIFF() | Возвращает время между двумя датами |
CONVERT() | дата Отображение / времени данные в различных форматах |
SQL Дата типы данных
MySQL поставляется со следующими типами данных для хранения даты или даты / значение времени в базе данных:
- ДАТА - формат YYYY-MM-DD
- DATETIME - формат: YYYY-MM-DD HH: MI: SS
- TIMESTAMP - формат: YYYY-MM-DD HH: MI: SS
- ГОД - формат YYYY или YY
SQL Server поставляется со следующими типами данных для хранения даты или даты / значение времени в базе данных:
- ДАТА - формат YYYY-MM-DD
- DATETIME - формат: YYYY-MM-DD HH: MI: SS
- SMALLDATETIME - формат: YYYY-MM-DD HH: MI: SS
- TIMESTAMP - формат: уникальный номер
Note: Типы даты выбраны для столбца при создании новой таблицы в базе данных!
Для обзора всех типов данных , доступных, перейдите к нашей полной Справочник по типам данных .
SQL Работа с датами
Вы можете сравнить две даты легко, если нет времени компонент участвует!
Предположим , мы имеем следующую "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 |
Теперь мы хотим , чтобы выбрать записи с OrderDate из "2008-11-11" из приведенной выше таблицы.
Мы используем следующую ЗЕЬЕСТ:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
Результат-набор будет выглядеть следующим образом:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Теперь предположим , что "Orders" таблица выглядит следующим образом (обратите внимание на компонент времени в "OrderDate" колонке):
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 13:23:44 |
2 | Камамбер Пьерро | 2008-11-09 15:45:21 |
3 | Моцарелла ди Джованни | 2008-11-11 11:12:01 |
4 | Маскарпоне Fabioli | 2008-10-29 14:56:59 |
Если мы используем один и тот же оператор SELECT, как описано выше:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
мы не получим никакого результата! Это происходит потому, что запрос ищет только даты без времени части.
Tip: Если вы хотите сохранить ваши запросы простой и легкий в обслуживании, не позволяют компоненты времени ваши даты!