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.