SYSDATETIMEOFFSET (Transact-SQL)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Возвращает значение datetimeoffset(7), содержащее дату и время компьютера, на котором выполняется экземпляр SQL Server. Смещение часового пояса включается.

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

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

Синтаксис

SYSDATETIMEOFFSET ( )  

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

datetimeoffset(7)

Замечания

Функция SYSDATETIMEOFFSET может использоваться в инструкциях Transact-SQL везде, где допустимо использование выражения datetimeoffset.

Функция SYSDATETIMEOFFSET недетерминированная. Невозможно проиндексировать представления и выражения, ссылающиеся на эту функцию в столбце.

Примечание.

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

Примеры

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

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

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

SELECT SYSDATETIME() AS [SYSDATETIME()]  
    ,SYSDATETIMEOFFSET() AS [SYSDATETIMEOFFSET()]  
    ,SYSUTCDATETIME() AS [SYSUTCDATETIME()]  
    ,CURRENT_TIMESTAMP AS [CURRENT_TIMESTAMP]  
    ,GETDATE() AS [GETDATE()]  
    ,GETUTCDATE() AS [GETUTCDATE()];  

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

SYSDATETIME()      2007-04-30 13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00
SYSUTCDATETIME()   2007-04-30 20:10:02.0474381
CURRENT_TIMESTAMP  2007-04-30 13:10:02.047
GETDATE()          2007-04-30 13:10:02.047
GETUTCDATE()       2007-04-30 20:10:02.047

B. Преобразование даты и времени в дату

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

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

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

2007-04-30
2007-04-30
2007-04-30
2007-04-30
2007-04-30
2007-04-30

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

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

SELECT CONVERT (time, SYSDATETIME()) AS [SYSDATETIME()]  
    ,CONVERT (time, SYSDATETIMEOFFSET()) AS [SYSDATETIMEOFFSET()]  
    ,CONVERT (time, SYSUTCDATETIME()) AS [SYSUTCDATETIME()]  
    ,CONVERT (time, CURRENT_TIMESTAMP) AS [CURRENT_TIMESTAMP]  
    ,CONVERT (time, GETDATE()) AS [GETDATE()]  
    ,CONVERT (time, GETUTCDATE()) AS [GETUTCDATE()];  

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

SYSDATETIME()      13:18:45.3490361
SYSDATETIMEOFFSET()13:18:45.3490361
SYSUTCDATETIME()   20:18:45.3490361
CURRENT_TIMESTAMP  13:18:45.3470000
GETDATE()          13:18:45.3470000
GETUTCDATE()       20:18:45.3470000

См. также

CAST и CONVERT (Transact-SQL)
Типы данных и функции даты и времени (Transact-SQL)