SYSUTCDATETIME()
och GETUTCDATE()
är två T-SQL-datum/tid-funktioner tillgängliga för användning i SQL Server. Dessa funktioner returnerar datum och tid för den dator där instansen av SQL Server körs. Båda funktionerna returnerar datum och tid som UTC-tid (Coordinated Universal Time).
Så båda funktionerna gör samma sak. Nästan.
Så här skiljer sig dessa två funktioner:
GETUTCDATE()
returnerar dess värde som en datetime värde.SYSUTCDATETIME()
returnerar dess värde som en datetime2 värde.
Det betyder att SYSUTCDATETIME()
ger fler sekunders precision. datetime2 datatypen har också ett större intervall än datetime .
Exempel
Här är ett exempel för att visa värdet som returneras av varje 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å detta liknar skillnaden mellan SYSDATETIME()
och GETDATE()
.
Vilken ska jag använda?
Microsoft rekommenderar att vi använder datetime2 med våra datum/tidsvärden. Denna datatyp överensstämmer med SQL-standarden och är mer portabel än datetime .
Använd därför SYSUTCDATETIME()
såvida du inte har en specifik anledning att inte göra det.