SYSUTCDATETIME()
og GETUTCDATE()
er to T-SQL-dato/tidsfunktioner tilgængelige til brug i SQL Server. Disse funktioner returnerer datoen og klokkeslættet for den computer, hvor forekomsten af SQL Server kører. Begge funktioner returnerer dato og klokkeslæt som UTC-tid (Coordinated Universal Time).
Så begge funktioner gør det samme. Næsten.
Sådan adskiller disse to funktioner sig:
GETUTCDATE()
returnerer dens værdi som en datotid værdi.SYSUTCDATETIME()
returnerer dens værdi som en datetime2 værdi.
Det betyder, at SYSUTCDATETIME()
giver flere sekunders præcision. datetime2 datatypen har også et større interval end datetime .
Eksempel
Her er et eksempel for at demonstrere den værdi, der returneres af hver funktion:
SELECT GETUTCDATE() AS GETUTCDATE, SYSUTCDATETIME() AS SYSUTCDATETIME;
Resultat:
+-------------------------+-----------------------------+ | GETUTCDATE | SYSUTCDATETIME | |-------------------------+-----------------------------| | 2018-06-13 11:04:55.237 | 2018-06-13 11:04:55.2396676 | +-------------------------+-----------------------------+
Så dette svarer til forskellen mellem SYSDATETIME()
og GETDATE()
.
Hvilken skal jeg bruge?
Microsoft anbefaler, at vi bruger datetime2 med vores dato/tidsværdier. Denne datatype stemmer overens med SQL-standarden og er mere bærbar end datetime .
Brug derfor SYSUTCDATETIME()
medmindre du har en specifik grund til at lade være.