Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SYSUTCDATETIME() vs GETUTCDATE() w SQL Server:jaka jest różnica?

SYSUTCDATETIME()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ć.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać kolumnę NOT NULL do dużej tabeli w SQL Server?

  2. SQL Server 2016:Przywracanie bazy danych

  3. CHARINDEX() vs PATINDEX() w SQL Server — jaka jest różnica?

  4. Dodawanie tożsamości do istniejącej kolumny

  5. Symulacja CONNECT BY PRIOR Oracle w SQL Server