sql >> Databasteknik >  >> RDS >> Sqlserver

SYSUTCDATETIME() vs GETUTCDATE() i SQL Server:Vad är skillnaden?

SYSUTCDATETIME() och GETUTCDATE() är två T-SQL-datum/tid-funktioner tillgängliga för användning i SQL Server. Dessa funktioner returnerar datum och tid för den dator där instansen av SQL Server körs. Båda funktionerna returnerar datum och tid som UTC-tid (Coordinated Universal Time).

Så båda funktionerna gör samma sak. Nästan.

Så här skiljer sig dessa två funktioner:

  • GETUTCDATE() returnerar dess värde som en datetime värde.
  • SYSUTCDATETIME() returnerar dess värde som en datetime2 värde.

Det betyder att SYSUTCDATETIME() ger fler sekunders precision. datetime2 datatypen har också ett större intervall än datetime .

Exempel

Här är ett exempel för att visa värdet som returneras av varje 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å detta liknar skillnaden mellan SYSDATETIME() och GETDATE() .

Vilken ska jag använda?

Microsoft rekommenderar att vi använder datetime2 med våra datum/tidsvärden. Denna datatyp överensstämmer med SQL-standarden och är mer portabel än datetime .

Använd därför SYSUTCDATETIME() såvida du inte har en specifik anledning att inte göra det.


  1. Distribuera Cloudera CDP Data Center på Oracle Cloud Infrastructure (OCI)

  2. MySQL månadsförsäljning för de senaste 12 månaderna inklusive månader utan rea

  3. SÄTT INGEN RÄKNING PÅ användning

  4. Charlotte SQL Server User Group:Fixa långsamma frågor. Snabb.