Partilhar via


SYSDATETIME (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida do Azure SQLAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Ponto de Extremidade de Análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de Dados SQL no Microsoft Fabric

Devolve um valor datetime2(7) que contém a data e hora do computador onde a instância do SQL Server está a correr.

Observação

SYSDATETIME e SYSUTCDATETIME têm mais precisão em frações de segundo do que GETDATE e GETUTCDATE. O SYSDATETIMEOFFSET inclui o deslocamento do fuso horário do sistema. SYSDATETIME, SYSUTCDATETIME e SYSDATETIMEOFFSET podem ser atribuídos a uma variável de qualquer um dos tipos de data e hora.

Azure SQL Database (com exceção do Azure SQL Managed Instance) e Azure Synapse Analytics seguem o UTC. Use AT TIME ZONE no Azure SQL Database ou Azure Synapse Analytics se precisar de interpretar informações de data e hora num fuso horário que não seja UTC.

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

Transact-SQL convenções de sintaxe

Sintaxe

SYSDATETIME ( )  

Tipo de Retorno

datetime2(7)

Observações

As instruções Transact-SQL podem referir-se a SYSDATETIME em qualquer lugar onde possam referir-se a uma expressão datetime2(7 ).

SYSDATETIME é uma função não determinística. Vistas e expressões que referenciam esta função numa coluna não podem ser indexadas.

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 seguintes usam as seis funções do sistema SQL Server que retornam a data e hora atuais para devolver a data, hora ou ambas. Os valores são retornados em série; portanto, seus segundos fracionários podem ser diferentes.

A. Obtenção da data e hora atuais do sistema

SELECT SYSDATETIME()  
    ,SYSDATETIMEOFFSET()  
    ,SYSUTCDATETIME()  
    ,CURRENT_TIMESTAMP  
    ,GETDATE()  
    ,GETUTCDATE();  
/* Returned:  
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. Obtenção da data atual do sistema

SELECT CONVERT (date, SYSDATETIME())  
    ,CONVERT (date, SYSDATETIMEOFFSET())  
    ,CONVERT (date, SYSUTCDATETIME())  
    ,CONVERT (date, CURRENT_TIMESTAMP)  
    ,CONVERT (date, GETDATE())  
    ,CONVERT (date, GETUTCDATE());  
  
/* All returned 2007-04-30 */  

C. Obter a hora atual do sistema

SELECT CONVERT (time, SYSDATETIME())  
    ,CONVERT (time, SYSDATETIMEOFFSET())  
    ,CONVERT (time, SYSUTCDATETIME())  
    ,CONVERT (time, CURRENT_TIMESTAMP)  
    ,CONVERT (time, GETDATE())  
    ,CONVERT (time, GETUTCDATE());  
  
/* Returned  
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  
*/  

Exemplos: Azure Synapse Analytics and Analytics Platform System (PDW)

D: Obter a data e hora atuais do sistema

SELECT SYSDATETIME();  

Aqui está o conjunto de resultados.

--------------------------  
7/20/2013 2:49:59 PM

Ver também

CAST e CONVERT (Transact-SQL)
Data e Hora Tipos de Dados e Funções (Transact-SQL)