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.