SYSUTCDATETIME (Transact-SQL)

Относится к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureAzure Synapse AnalyticsSQL аналитическая конечная точка в Microsoft FabricХранилище в Microsoft FabricSQL база данных в Microsoft Fabric

SYSUTCDATETIME Функция Transact-SQL (T-SQL) возвращает значение datetime2, содержащее дату и время работы компьютера, на котором работает экземпляр SQL Server. Возвращаемые дата и время отображаются в формате UTC. Точность дробной части значения секунд может быть задана в диапазоне от 1 до 7 цифр. Точность по умолчанию составляет 7 цифр.

Необходимо учесть следующие моменты.

  • SYSDATETIME и SYSUTCDATETIME имеет более дробную точность секунд, чем GETDATE и GETUTCDATE.

  • SYSDATETIMEOFFSET включает смещение часового пояса системы.

  • SYSDATETIME, SYSUTCDATETIMEи SYSDATETIMEOFFSET может быть назначен переменной любого из типов даты и времени.

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

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

Syntax

SYSUTCDATETIME ( )

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

datetime2

Remarks

Transact-SQL операторы могут ссылаться на SYSUTCDATETIME любое место, где они могут ссылаться на выражение datetime2 .

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

Note

SQL Server получает значения даты и времени с помощью GetSystemTimeAsFileTime() API Windows. Точность зависит от оборудования компьютера и версии Windows, в которой выполняется экземпляр SQL Server. Точность возвращаемых значений этого API-интерфейса задана равной 100 нс. Точность можно определить с помощью GetSystemTimeAdjustment() API Windows.

Examples

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

A. Отображение форматов, возвращаемых функциями даты и времени

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

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

C. Преобразование значений даты и времени в время

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

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

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

SYSDATETIME()        16:15:37.7418724
SYSDATETIMEOFFSET()  16:15:37.7418724
SYSUTCDATETIME()     22:15:37.7418724
CURRENT_TIMESTAMP    16:15:37.740
GETDATE()            16:15:37.740
GETUTCDATE()         22:15:37.740