Основы работы с датой и временем в SQL
Работа с датами и временем в SQL важна для многих задач, таких как отслеживание времени транзакций, планирование и создание отчетов. SQL предоставляет различные функции для работы с датами и временем. Рассмотрим основные функции и методы работы с датой и временем в SQL с примерами.
Типы данных для даты и времени
DATE
: хранит только дату (год, месяц, день).TIME
: хранит только время (часы, минуты, секунды).DATETIME
: хранит дату и время (год, месяц, день, часы, минуты, секунды).DATETIME2
: расширенная версияDATETIME
, точность до 100 наносекунд.SMALLDATETIME
: хранит дату и время с меньшей точностью, чемDATETIME
.TIMESTAMP
: хранит уникальное значение времени для отслеживания изменений, но не предназначен для хранения даты и времени (вместо этого используйтеROWVERSION
в SQL Server).
Основные функции для работы с датой и временем
Текущая дата и время
GETDATE()
(SQL Server): возвращает текущую дату и время.CURRENT_TIMESTAMP
(SQL Server, PostgreSQL, MySQL): возвращает текущую дату и время.NOW()
(MySQL, PostgreSQL): возвращает текущую дату и время.
Пример:
Извлечение компонентов даты и времени
YEAR(date)
: возвращает год.MONTH(date)
: возвращает месяц.DAY(date)
: возвращает день.DATEPART(part, date)
(SQL Server): возвращает указанную часть даты.EXTRACT(part FROM date)
(PostgreSQL): возвращает указанную часть даты.
Примеры:
Форматирование дат
FORMAT(date, format)
(SQL Server): форматирует дату в строку.TO_CHAR(date, format)
(PostgreSQL, Oracle): форматирует дату в строку.DATE_FORMAT(date, format)
(MySQL): форматирует дату в строку.
Примеры:
Добавление и вычитание интервалов
DATEADD(datepart, number, date)
(SQL Server): добавляет интервал к дате.DATE_SUB(date, INTERVAL number unit)
(MySQL): вычитает интервал из даты.DATEADD
иINTERVAL
(PostgreSQL): добавляет или вычитает интервал из даты.
Примеры:
Разница между датами
DATEDIFF(datepart, start_date, end_date)
(SQL Server): возвращает разницу между двумя датами.DATEDIFF(unit, start_date, end_date)
(MySQL): возвращает разницу между двумя датами.AGE(date)
(PostgreSQL): возвращает интервал между двумя датами.
Примеры:
Примеры использования в запросах
Поиск записей по дате
Форматирование даты в отчетах
Добавление временных меток к записям
Эти функции и методы помогут вам эффективно управлять датами и временем в SQL. Разные СУБД могут иметь свои особенности, поэтому всегда полезно проверять документацию для конкретной системы.
Last updated