sql >> Database teknologi >  >> RDS >> Sqlserver

SYSUTCDATETIME() vs GETUTCDATE() i SQL Server:Hvad er forskellen?

SYSUTCDATETIME() og GETUTCDATE() er to T-SQL-dato/tidsfunktioner tilgængelige til brug i SQL Server. Disse funktioner returnerer datoen og klokkeslættet for den computer, hvor forekomsten af ​​SQL Server kører. Begge funktioner returnerer dato og klokkeslæt som UTC-tid (Coordinated Universal Time).

Så begge funktioner gør det samme. Næsten.

Sådan adskiller disse to funktioner sig:

  • GETUTCDATE() returnerer dens værdi som en datotid værdi.
  • SYSUTCDATETIME() returnerer dens værdi som en datetime2 værdi.

Det betyder, at SYSUTCDATETIME() giver flere sekunders præcision. datetime2 datatypen har også et større interval end datetime .

Eksempel

Her er et eksempel for at demonstrere den værdi, der returneres af hver 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å dette svarer til forskellen mellem SYSDATETIME() og GETDATE() .

Hvilken skal jeg bruge?

Microsoft anbefaler, at vi bruger datetime2 med vores dato/tidsværdier. Denne datatype stemmer overens med SQL-standarden og er mere bærbar end datetime .

Brug derfor SYSUTCDATETIME() medmindre du har en specifik grund til at lade være.


  1. Sådan installeres PostgreSQL 12 på Fedora 33

  2. Sådan dropper du flere tabeller i PostgreSQL ved hjælp af et jokertegn

  3. Sådan registrerer du, om en værdi indeholder mindst et numerisk ciffer i MariaDB

  4. Installation af PostgreSQL Extension til alle skemaer