sql >> Databáze >  >> RDS >> Sqlserver

SYSUTCDATETIME() vs GETUTCDATE() na serveru SQL Server:Jaký je rozdíl?

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


  1. Jak správně zacházet s daty v omezeních dotazů

  2. Aplikace se zhroutí při instalaci s chybou sqlite3_exec – Nepodařilo se nastavit synchronní režim =1 (normální)

  3. Nejčastější chyby, kterým je třeba se vyhnout při replikaci MySQL

  4. ODBC 4.0