SYSUTCDATETIME()
e GETUTCDATE()
sono due funzioni di data/ora T-SQL disponibili per l'uso in SQL Server. Queste funzioni restituiscono la data e l'ora del computer in cui è in esecuzione l'istanza di SQL Server. Entrambe le funzioni restituiscono la data e l'ora come ora UTC (Coordinated Universal Time).
Quindi, entrambe le funzioni fanno la stessa cosa. Quasi.
Ecco come differiscono queste due funzioni:
GETUTCDATE()
restituisce il suo valore come datetime valore.SYSUTCDATETIME()
restituisce il suo valore come datetime2 valore.
Ciò significa che SYSUTCDATETIME()
fornisce più secondi di precisione. La dataora2 il tipo di dati ha anche un intervallo più ampio di datetime .
Esempio
Ecco un esempio per dimostrare il valore restituito da ciascuna funzione:
SELECT GETUTCDATE() AS GETUTCDATE, SYSUTCDATETIME() AS SYSUTCDATETIME;
Risultato:
+-------------------------+-----------------------------+ | GETUTCDATE | SYSUTCDATETIME | |-------------------------+-----------------------------| | 2018-06-13 11:04:55.237 | 2018-06-13 11:04:55.2396676 | +-------------------------+-----------------------------+
Quindi questo è simile alla differenza tra SYSDATETIME()
e GETDATE()
.
Quale dovrei usare?
Microsoft consiglia di utilizzare datetime2 con i nostri valori di data/ora. Questo tipo di dati è in linea con lo standard SQL ed è più portabile di datetime .
Pertanto, usa SYSUTCDATETIME()
a meno che tu non abbia un motivo specifico per non farlo.