CURRENT_DATE (Transact-SQL)

Применимо к: Sql Server 2025 (17.x) База данныхSQL Azure Управляемого экземпляраSQL Azure в Microsoft Fabric

CURRENT_DATE Функция Transact-SQL (T-SQL) возвращает текущую дату системы базы данных в виде значения даты без смещения времени и часового пояса базы данных. CURRENT_DATEвыводит это значение из базовой операционной системы, на которой работает ядро СУБД.

Примечание.

SYSDATETIME и SYSUTCDATE имеют большую точность в долях секунды, чем GETDATE и GETUTCDATE. Функция SYSDATETIMEOFFSET включает смещение часового пояса, заданное в системе. Функции SYSDATETIME, SYSUTCDATETIME и SYSDATETIMEOFFSET могут быть присвоены переменным любого типа даты и времени.

Эта функция эквивалентна ANSI SQL CAST(GETDATE() AS DATE). Дополнительные сведения см. в разделе GETDATE.

Примечание.

База данных SQL Azure и SQL Database в Microsoft Fabric поддерживают изменение стандартного часового пояса с универсального координированного времени (UTC). Если вы изменяете часовой пояс на уровне базы данных или сессии , эта функция возвращает локальное время на основе заданного значения часового пояса. Для получения дополнительной информации см. ALTER DATABASE SCOPED CONFIGURATIONразделSET TIME ZONE.

Общие сведения обо всех типах и функциях данных и функций даты и времени Transact-SQL см. в разделе "Типы и функции данных даты и времени".

Соглашения о синтаксисе Transact-SQL

Синтаксис

CURRENT_DATE

Аргументы

Эта функция не имеет аргументов.

Типы возвращаемых данных

date

Замечания

Инструкции Transact-SQL могут ссылаться на CURRENT_DATE любое место, где они могут ссылаться на выражение даты .

CURRENT_DATE является недетерминированной функцией. Представления и выражения, ссылающиеся на этот столбец, не могут быть индексированы.

Примеры

В этих примерах используются системные функции, возвращающие текущие значения даты и времени, для возврата даты, времени или обоих. Значения возвращаются последовательно, поэтому могут различаться на доли секунды. Фактические значения, возвращаемые, отражают фактический день или время выполнения.

А. Получение текущей даты и времени системы

SELECT SYSDATETIME(),
       SYSDATETIMEOFFSET(),
       SYSUTCDATETIME(),
       CURRENT_TIMESTAMP,
       GETDATE(),
       GETUTCDATE(),
       CURRENT_DATE;

Вот результирующий набор.

SYSDATETIME()        2026-09-01 16:15:37.7418724
SYSDATETIMEOFFSET()  2026-09-01 16:15:37.7418724 -06:00
SYSUTCDATETIME()     2026-09-01 22:15:37.7418724
CURRENT_TIMESTAMP    2026-09-01 16:15:37.740
GETDATE()            2026-09-01 16:15:37.740
GETUTCDATE()         2026-09-01 22:15:37.740
CURRENT_DATE         2026-09-01

B. Получение текущей даты системы

В следующем примере показано, как преобразовать значения даты и времени в тип данных даты .

SELECT CONVERT (DATE, SYSDATETIME()),
       CONVERT (DATE, SYSDATETIMEOFFSET()),
       CONVERT (DATE, SYSUTCDATETIME()),
       CONVERT (DATE, CURRENT_TIMESTAMP),
       CONVERT (DATE, GETDATE()),
       CONVERT (DATE, GETUTCDATE()),
       CURRENT_DATE;

Вот результирующий набор.

SYSDATETIME()        2026-09-01
SYSDATETIMEOFFSET()  2026-09-01
SYSUTCDATETIME()     2026-09-01
CURRENT_TIMESTAMP    2026-09-01
GETDATE()            2026-09-01
GETUTCDATE()         2026-09-01
CURRENT_DATE         2026-09-01