Condividi tramite


SYSUTCDATETIME (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di analisi (PDW)Endpoint di analisi SQL in Microsoft FabricWarehouse in Microsoft FabricDatabase SQL in Anteprima di Microsoft Fabric

Restituisce il valore datetime2 che contiene la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server. La data e l'ora vengono restituite in formato ora UTC (Coordinated Universal Time). La precisione frazionaria dei secondi può essere specificata in un intervallo da 1 a 7 cifre. La precisione predefinita è 7 cifre.

Note

SYSDATETIME e SYSUTCDATETIME hanno una precisione di secondi frazionari maggiore di GETDATE e GETUTCDATE.

SYSDATETIMEOFFSET include l'offset del fuso orario di sistema.

SYSDATETIME, SYSUTCDATETIMEe SYSDATETIMEOFFSET possono essere assegnati a una variabile di uno dei tipi di data e ora.

Per una panoramica di tutte le funzioni e i tipi di dati di data e ora Transact-SQL, vedere Funzioni e tipi di dati di data e ora (Transact-SQL).

Convenzioni relative alla sintassi Transact-SQL

Syntax

SYSUTCDATETIME ( )  

Return Type

datetime2

Remarks

Transact-SQL istruzioni possono fare riferimento a SYSUTCDATETIME qualsiasi punto in cui possano fare riferimento a un'espressione datetime2 .

SYSUTCDATETIME è una funzione non deterministica. Le viste e le espressioni che fanno riferimento a questa funzione in una colonna non sono indicizzabili.

Note

SQL Server ottiene i valori di data e ora usando l'API GetSystemTimeAsFileTime() Windows. L'accuratezza dipende dall'hardware e dalla versione di Windows del computer in cui è in esecuzione l'istanza di SQL Server. La precisione di tale API è fissata sul valore di 100 nanosecondi. L'accuratezza può essere determinata usando l'API GetSystemTimeAdjustment() di Windows.

Examples

Negli esempi seguenti vengono usate le sei funzioni di sistema di SQL Server che restituiscono data e ora corrente per restituire la data, l'ora o entrambe. I valori sono restituiti in serie. Pertanto, i secondi frazionari potrebbero essere diversi.

A. Mostra i formati restituiti dalle funzioni di data e ora

Nell'esempio seguente vengono illustrati i diversi formati restituiti dalle funzioni di data e ora.

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

Il set di risultati è il seguente.

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. Convertire data e ora in data

Nell'esempio seguente viene illustrato come convertire i valori di data e ora nel tipo di dati date .

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

Il set di risultati è il seguente.

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

C. Convertire i valori di data e ora in ora

Nell'esempio seguente viene illustrato come convertire i valori di data e ora nel tipo di dati time*.

DECLARE @DATETIME DATETIME = GetDate();
DECLARE @TIME TIME
SELECT @TIME = CONVERT(time, @DATETIME)
SELECT @TIME AS 'Time', @DATETIME AS 'Date Time'

Il set di risultati è il seguente.

Time             Date Time  
13:49:33.6330000 2009-04-22 13:49:33.633