SYSDATETIMEOFFSET (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do AzureBanco de Dados SQL do Azure Synapse Analyticsno Microsoft Fabric

A SYSDATETIMEOFFSET função Transact-SQL (T-SQL) devolve um valor datetimeoffset(7) que contém a data e hora do computador onde a instância de SQL Server está a correr. O deslocamento do fuso horário está incluído.

Para obter uma visão geral de todos os tipos e funções de dados de data e hora Transact-SQL, consulte Tipos e funções de dados de data e hora.

Transact-SQL convenções de sintaxe

Sintaxe

SYSDATETIMEOFFSET ( )

Tipos de devolução

datetimeoffset(7)

Observações

Transact-SQL instruções podem referir-se a SYSDATETIMEOFFSET em qualquer lugar onde possam referir-se a uma expressão datetimeoffset .

SYSDATETIMEOFFSET é uma função não determinística. Os modos de exibição e expressões que fazem referência a essa função em uma coluna não podem ser indexados.

Observação

O SQL Server obtém os valores de data e hora utilizando a API GetSystemTimeAsFileTime() do Windows. A precisão depende do hardware do computador e da versão do Windows na qual a instância do SQL Server está sendo executada. A precisão desta API é fixada em 100 nanossegundos. A precisão pode ser determinada utilizando a API GetSystemTimeAdjustment() do Windows.

Examples

Os exemplos a seguir usam as seis funções do sistema SQL Server que retornam a data e a hora atuais para retornar a data, a hora ou ambas. Os valores são retornados em série; portanto, seus segundos fracionários podem ser diferentes.

A. Mostrar os formatos retornados pelas funções de data e hora

O exemplo a seguir mostra os diferentes formatos retornados pelas funções de data e hora.

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

Aqui está o conjunto de resultados.

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. Converter data e hora em data

O exemplo seguinte mostra-lhe como converter valores de data e hora para date.

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

Aqui está o conjunto de resultados.

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. Converter data e hora para horários

O exemplo seguinte mostra-lhe como converter valores de data e hora para time.

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

Aqui está o conjunto de resultados.

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