SYSUTCDATETIME()
i GETUTCDATE()
to dwie funkcje daty/godziny T-SQL dostępne do użycia w SQL Server. Te funkcje zwracają datę i godzinę komputera, na którym działa instancja SQL Server. Obie funkcje zwracają datę i godzinę jako czas UTC (uniwersalny czas koordynowany).
Tak więc obie funkcje robią to samo. Prawie.
Oto różnice między tymi dwiema funkcjami:
GETUTCDATE()
zwraca swoją wartość jako data i godzina wartość.SYSUTCDATETIME()
zwraca swoją wartość jako datetime2 wartość.
Oznacza to, że SYSUTCDATETIME()
zapewnia większą precyzję sekund. data/godzina2 typ danych ma również większy zakres niż data-godzina .
Przykład
Oto przykład demonstrujący wartość zwracaną przez każdą funkcję:
SELECT GETUTCDATE() AS GETUTCDATE, SYSUTCDATETIME() AS SYSUTCDATETIME;
Wynik:
+-------------------------+-----------------------------+ | GETUTCDATE | SYSUTCDATETIME | |-------------------------+-----------------------------| | 2018-06-13 11:04:55.237 | 2018-06-13 11:04:55.2396676 | +-------------------------+-----------------------------+
Jest to więc podobne do różnicy między SYSDATETIME()
i GETDATE()
.
Którego mam użyć?
Firma Microsoft zaleca korzystanie z datetime2 z naszymi wartościami daty/czasu. Ten typ danych jest zgodny ze standardem SQL i jest bardziej przenośny niż data-godzina .
Dlatego użyj SYSUTCDATETIME()
chyba że masz konkretny powód, aby tego nie robić.