Функция DATE SQL

  • Предыдущая страница SQL View
  • Следующая страница SQL Nulls

SQL дата

Одной из самых сложных задач при обработке дат является обеспечение того, чтобы формат вставляемой даты соответствовал формату столбца даты в базе данных.

Если данные содержат только дату, выполнение запроса не вызовет проблем. Однако, если涉及到时间, ситуация несколько усложняется.

Прежде чем обсуждать сложность запросов на даты,我们先来看看最重要的内置日期处理函数。

Функции даты MySQL

Ниже приведена таблица с самыми важными встроенными функциями даты в MySQL:

Функция Описание
Функция NOW() Возврат текущей даты и времени
Функция CURDATE() Возврат текущей даты
Функция CURTIME() Возврат текущего времени
Функция DATE() Извлечение даты или части даты/времени выражения
Функция EXTRACT() Возврат отдельной части даты/времени по запросу
Функция DATE_ADD() Добавление указанного интервала времени к дате
Функция DATE_SUB() Удаление указанного интервала времени из даты
Функция DATEDIFF() Возврат количества дней между двумя датами
Функция DATE_FORMAT() Просмотр даты/времени в различных форматах

Функции даты SQL Server

Ниже приведена таблица с самыми важными встроенными функциями даты в SQL Server:

Функция Описание
Функция GETDATE() Возврат текущей даты и времени
Функция DATEPART() Возврат отдельной части даты/времени
Функция DATEADD() Добавление или вычитание указанного интервала времени в дате
Функция DATEDIFF() Возврат времени между двумя датами
Функция CONVERT() Просмотр даты/времени в различных форматах

Тип данных SQL Date

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

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

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

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

Обработка дат SQL

Если не учитывать часть времени, то легко сравнить две даты!

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

OrderId ProductName OrderDate
1 computer 2008-12-26
2 printer 2008-12-26
3 electrograph 2008-11-12
4 telephone 2008-10-19

Теперь мы хотим выбрать записи из таблицы, где OrderDate равен "2008-12-26".

Мы используем следующий SELECT-запрос:

SELECT * FROM Orders WHERE OrderDate='2008-12-26'

Результаты набора данных:

OrderId ProductName OrderDate
1 computer 2008-12-26
3 electrograph 2008-12-26

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

OrderId ProductName OrderDate
1 computer 2008-12-26 16:23:55
2 printer 2008-12-26 10:45:26
3 electrograph 2008-11-12 14:12:08
4 telephone 2008-10-19 12:56:10

Если мы используем следующий SELECT-запрос:

SELECT * FROM Orders WHERE OrderDate='2008-12-26'

В этом случае мы не получим результатов. Это связано с тем, что дата в данном запросе не содержит части времени.

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

  • Предыдущая страница SQL View
  • Следующая страница SQL Nulls