SYSUTCDATETIME()
a GETUTCDATE()
jsou dvě funkce data/času T-SQL dostupné pro použití na serveru SQL. Tyto funkce vrátí datum a čas počítače, na kterém je spuštěna instance SQL Server. Obě funkce vrátí datum a čas jako čas UTC (Coordinated Universal Time).
Obě funkce tedy dělají totéž. Téměř.
Zde je návod, jak se tyto dvě funkce liší:
GETUTCDATE()
vrátí svou hodnotu jako datetime hodnotu.SYSUTCDATETIME()
vrátí svou hodnotu jako datetime2 hodnotu.
To znamená, že SYSUTCDATETIME()
poskytuje více sekundovou přesnost. datetime2 datový typ má také větší rozsah než datetime .
Příklad
Zde je příklad demonstrující hodnotu vrácenou každou funkcí:
SELECT GETUTCDATE() AS GETUTCDATE, SYSUTCDATETIME() AS SYSUTCDATETIME;
Výsledek:
+-------------------------+-----------------------------+ | GETUTCDATE | SYSUTCDATETIME | |-------------------------+-----------------------------| | 2018-06-13 11:04:55.237 | 2018-06-13 11:04:55.2396676 | +-------------------------+-----------------------------+
Takže je to podobné jako rozdíl mezi SYSDATETIME()
a GETDATE()
.
Který mám použít?
Společnost Microsoft doporučuje používat datetime2 s našimi hodnotami data/času. Tento datový typ je v souladu se standardem SQL a je přenosnější než datetime .
Proto použijte SYSUTCDATETIME()
pokud k tomu nemáte konkrétní důvod.