SYSUTCDATETIME (Transact-SQL)

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.

Nota

La precisione in secondi frazionari di SYSDATETIME e SYSUTCDATE è maggiore di quella di GETDATE e GETUTCDATE. SYSDATETIMEOFFSET include la differenza di fuso orario di sistema. SYSDATETIME, SYSUTCDATE e SYSDATETIMEOFFSET possono essere assegnate a una variabile di qualsiasi tipo di data e ora.

Per una panoramica di tutti i tipi di dati e funzioni di data e ora Transact-SQL, vedere Funzioni e tipi di dati di data e ora. Per informazioni ed esempi comuni ai tipi di dati e alle funzioni di data e ora, vedere Utilizzo di dati relativi a data e ora.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

SYSUTCDATETIME ( )

Tipo restituito

datetime2

Osservazioni

Le istruzioni Transact-SQL possono fare riferimento a SYSUTCDATETIME in qualsiasi punto in cui possono 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.

Nota

In SQL Server 2008 i valori di data e ora vengono ottenuti tramite l'API Windows GetSystemTimeAsFileTime(). 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 utilizzando l'API Windows GetSystemTimeAdjustment().

Esempi

Negli esempi seguenti sono utilizzate 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. Visualizzazione dei 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;

Set di risultati:

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. Conversione di data e ora in una data

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

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

Set di risultati:

2007-04-30

2007-04-30

2007-04-30

2007-04-30

2007-04-30

2007-04-30

C. Conversione dei valori di data e ora in ore

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

DECLARE @DATETIME DATETIME = GetDate();

DECLARE @TIME TIME

SELECT @TIME = CONVERT(time, @DATETIME)

SELECT @TIME AS 'Time', @DATETIME AS 'Date Time'

Set di risultati:

Ora Data Ora

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