Megosztás a következőn keresztül:


GETDATE (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Visszaadja az aktuális adatbázis rendszer időbélyegét dátum-idő értékként az adatbázis időzóna eltolása nélkül. Ez az érték az SQL Server példánya futó számítógép operációs rendszeréből származik.

Megjegyzés:

A SYSDATETIME és a SYSUTCDATETIME törtmásodperces pontossággal rendelkezik, mint a GETDATE és a GETUTCDATE. A SYSDATETIMEOFFSET tartalmazza a rendszer időzóna eltérését. A SYSDATETIME, SYSUTCDATETIME és SYSDATETIMEOFFSET bármely date és time típusú változóhoz rendelhetők.

Az Azure SQL Database (kivéve Azure SQL Managed Instance) és Azure Synapse Analytics követi az UTC-t. Ha nem UTC időzónában kell értelmezni a dátum- és időinformációt, használd az AT TIME ZONE vagy Azure Synapse Analytics programokat.

Az összes Transact-SQL dátum- és időadattípus és -függvény áttekintése: Dátum- és időadattípusok és függvények (Transact-SQL).

Transact-SQL szintaxis konvenciók

Szemantika

GETDATE()

Visszatérési típus

datetime

Megjegyzések

Transact-SQL utasítások bárhol hivatkozhatnak a GETDATE-re, ahol egy dátumidő-kifejezésre hivatkozhatnak.

A GETDATE egy nemdeterminisztikus függvény. Az oszlopban hivatkozó nézetek és kifejezések nem indexelhetők.

A SWITCHOFFSET használata a GETDATE() függvénnyel lassan futhat, mert a lekérdezésoptimalizáló nem tud pontos kardinalitásbecsléseket elérni a GETDATE értékre. Javasoljuk, hogy előre számolja ki a GETDATE értéket, majd megadja ezt a lekérdezésben, ahogy az alábbi példában látható. Ezen felül az OPTION (RECOMPILE) lekérdezési tippet használjuk, hogy kényszerítsd a lekérdezésoptimalizálót arra, hogy a következő alkalommal ugyanazt a lekérdezést végrehajtják. Az optimalizáló ezután pontos kardinalitás-becsléseket kap a GETDATE() számára, és hatékonyabb lekérdezési tervet készít.

DECLARE @dt datetimeoffset = switchoffset (CONVERT(datetimeoffset, GETDATE()), '-04:00');
SELECT * FROM t
WHERE c1 > @dt OPTION (RECOMPILE);

Példák

Az alábbi példák a hat SQL Server rendszerfüggvényt használják, amelyek az aktuális dátumot és időt adják vissza a dátum, az idő vagy mindkettő visszaadásához. Az értékek sorozatban jelennek meg; ezért a tört másodpercük eltérő lehet.

A. A jelenlegi rendszer dátumának és időpontjának megszerzése

SELECT SYSDATETIME()
    ,SYSDATETIMEOFFSET()
    ,SYSUTCDATETIME()
    ,CURRENT_TIMESTAMP
    ,GETDATE()
    ,GETUTCDATE();

Itt van az eredmények összessége.

SYSDATETIME()      2007-04-30 13:10:02.0474381
SYSDATETIMEOFFSET()2007-04-30 13:10:02.0474381 -07:00
SYSUTCDATETIME()   2007-04-30 20:10:02.0474381
CURRENT_TIMESTAMP  2007-04-30 13:10:02.047
GETDATE()          2007-04-30 13:10:02.047
GETUTCDATE()       2007-04-30 20:10:02.047

B. A jelenlegi rendszer dátumának megszerzése

SELECT CONVERT (date, SYSDATETIME())
    ,CONVERT (date, SYSDATETIMEOFFSET())
    ,CONVERT (date, SYSUTCDATETIME())
    ,CONVERT (date, CURRENT_TIMESTAMP)
    ,CONVERT (date, GETDATE())
    ,CONVERT (date, GETUTCDATE());

Itt van az eredmények összessége.

SYSDATETIME()          2007-05-03
SYSDATETIMEOFFSET()    2007-05-03
SYSUTCDATETIME()       2007-05-04
CURRENT_TIMESTAMP      2007-05-03
GETDATE()              2007-05-03
GETUTCDATE()           2007-05-04

C. A jelenlegi rendszer idő megszerzése

SELECT CONVERT (time, SYSDATETIME())
    ,CONVERT (time, SYSDATETIMEOFFSET())
    ,CONVERT (time, SYSUTCDATETIME())
    ,CONVERT (time, CURRENT_TIMESTAMP)
    ,CONVERT (time, GETDATE())
    ,CONVERT (time, GETUTCDATE());

Itt van az eredmények összessége.

SYSDATETIME()       13:18:45.3490361
SYSDATETIMEOFFSET() 13:18:45.3490361
SYSUTCDATETIME()    20:18:45.3490361
CURRENT_TIMESTAMP   13:18:45.3470000
GETDATE()           13:18:45.3470000
GETUTCDATE()        20:18:45.3470000

Példák: Azure Synapse Analytics and Analytics Platform System (PDW)

Az alábbi példák a három SQL Server rendszerfunkciót használják, amelyek visszaadják az aktuális dátumot és az időt, hogy visszaadják a dátumot, az időt, vagy mindkettőt. Az értékek sorozatban jelennek meg; ezért a tört másodpercük eltérő lehet.

D. A jelenlegi rendszer dátumának és időpontjának megszerzése

SELECT SYSDATETIME()
    ,CURRENT_TIMESTAMP
    ,GETDATE();

E. A jelenlegi rendszer dátumának megszerzése

SELECT CONVERT (date, SYSDATETIME())
    ,CONVERT (date, CURRENT_TIMESTAMP)
    ,CONVERT (date, GETDATE());

F. A jelenlegi rendszer idő megszerzése

SELECT CONVERT (time, SYSDATETIME())
    ,CONVERT (time, CURRENT_TIMESTAMP)
    ,CONVERT (time, GETDATE());

Lásd még:

CAST és CONVERT (Transact-SQL)