SYSDATETIMEOFFSET (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsDatabase SQL in Microsoft Fabric

La SYSDATETIMEOFFSET funzione Transact-SQL (T-SQL) restituisce un valore datetimeoffset(7) che contiene la data e l'ora del computer su cui l'istanza di SQL Server è in esecuzione. La differenza di fuso orario è inclusa.

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

Convenzioni relative alla sintassi Transact-SQL

Sintassi

SYSDATETIMEOFFSET ( )

Tipi restituiti

datetimeoffset(7)

Osservazioni:

Le istruzioni Transact-SQL possono fare riferimento a SYSDATETIMEOFFSET ovunque possano fare riferimento a un'espressione datetimeoffset.

SYSDATETIMEOFFSET è una funzione non deterministica. Le viste e le espressioni che fanno riferimento a questa funzione in una colonna non possono essere indicizzate.

Nota

SQL Serve ottiene i valori di data e ora 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 usando l'API Windows GetSystemTimeAdjustment().

Esempi

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.

R. 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(),
       SYSDATETIMEOFFSET(),
       SYSUTCDATETIME(),
       CURRENT_TIMESTAMP,
       GETDATE(),
       GETUTCDATE(),
       CURRENT_DATE;

Il set di risultati è il seguente.

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. Convertire data e ora in 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()),
       CURRENT_DATE;

Il set di risultati è il seguente.

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

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

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

Il set di risultati è il seguente.

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