SYSDATETIME (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

Restituisce il valore datetime2(7) che contiene la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server.

Nota

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

Database SQL di Azure (ad eccezione di Istanza gestita di SQL di Azure) e Azure Synapse Analytics seguono l'ora UTC. Se è necessario interpretare le informazioni relative a data e ora in un fuso orario non UTC, usare AT TIME ZONE in Database SQL di Azure o Azure Synapse Analytics.

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

Sintassi

SYSDATETIME ( )  

Tipo restituito

datetime2(7)

Osservazioni:

Le istruzioni Transact-SQL possono fare riferimento a SYSDATETIME ovunque possano fare riferimento a un'espressione datetime2(7).

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

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 sono 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. Recupero della data e dell'ora correnti del 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. Recupero della data corrente del 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. Recupero dell'ora corrente del 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  
*/  

Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)

D: Recupero della data e dell'ora correnti del sistema

SELECT SYSDATETIME();  

Il set di risultati è il seguente.

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

Vedi anche

CAST e CONVERT (Transact-SQL)
Funzioni e tipi di dati di data e ora (Transact-SQL)