Udostępnij za pomocą


SYSDATETIME (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca wartość datetime2(7), która zawiera datę i godzinę komputera, na którym działa instancja SQL Servera.

Uwaga / Notatka

SYSDATETIME i SYSUTCDATETIME mają większą precyzję ułamkowych sekund niż GETDATE i GETUTCDATE. SYSDATETIMEOFFSET obejmuje przesunięcie strefy czasowej systemu. SYSDATETIME, SYSUTCDATETIME oraz SYSDATETIMEOFFSET mogą być przypisane do zmiennej dowolnego typu daty i czasu.

Azure SQL Database (z wyjątkiem Azure SQL Managed Instance) oraz Azure Synapse Analytics podążają za UTC. Użyj AT TIME ZONE w Azure SQL Database lub Azure Synapse Analytics, jeśli musisz interpretować informacje o dacie i czasie w strefie czasowej spoza UTC.

Aby zapoznać się z omówieniem wszystkich typów danych i funkcji daty i godziny Transact-SQL, zobacz Typy danych i funkcje daty i godziny (Transact-SQL).

Transact-SQL konwencje składni

Składnia

SYSDATETIME ( )  

Zwracany typ

datetime2(7)

Uwagi

Transact-SQL instrukcje mogą odnosić się do SYSDATETIME wszędzie tam, gdzie mogą odnosić się do wyrażenia datetime2(7).

SYSDATETIME jest funkcją niedeterministyczną. Widoki i wyrażenia odnoszące się do tej funkcji w kolumnie nie mogą być indeksowane.

Uwaga / Notatka

SQL Server uzyskuje wartości daty i czasu za pomocą API Windows GetSystemTimeAsFileTime(). Dokładność zależy od sprzętu komputera i wersji systemu Windows, na którym działa wystąpienie programu SQL Server. Precyzja tego interfejsu API jest stała na poziomie 100 nanosekund. Dokładność można określić, korzystając z API Windows GetSystemTimeAdjustment().

Przykłady

Poniższe przykłady wykorzystują sześć funkcji systemu SQL Server, które zwracają aktualną datę i czas, aby zwrócić datę, czas lub oba te parametry. Wartości są zwracane w serii; w związku z tym ich ułamkowe sekundy mogą być inne.

A. Uzyskanie aktualnej daty i godziny systemu

SELECT SYSDATETIME()  
    ,SYSDATETIMEOFFSET()  
    ,SYSUTCDATETIME()  
    ,CURRENT_TIMESTAMP  
    ,GETDATE()  
    ,GETUTCDATE();  
/* Returned:  
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. Uzyskanie aktualnej daty systemu

SELECT CONVERT (date, SYSDATETIME())  
    ,CONVERT (date, SYSDATETIMEOFFSET())  
    ,CONVERT (date, SYSUTCDATETIME())  
    ,CONVERT (date, CURRENT_TIMESTAMP)  
    ,CONVERT (date, GETDATE())  
    ,CONVERT (date, GETUTCDATE());  
  
/* All returned 2007-04-30 */  

C. Uzyskanie bieżącego czasu systemowego

SELECT CONVERT (time, SYSDATETIME())  
    ,CONVERT (time, SYSDATETIMEOFFSET())  
    ,CONVERT (time, SYSUTCDATETIME())  
    ,CONVERT (time, CURRENT_TIMESTAMP)  
    ,CONVERT (time, GETDATE())  
    ,CONVERT (time, GETUTCDATE());  
  
/* Returned  
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  
*/  

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

D: Uzyskanie aktualnej daty i godziny systemu

SELECT SYSDATETIME();  

Oto zestaw wyników.

--------------------------  
7/20/2013 2:49:59 PM

Zobacz też

RZUTOWANIE i konwertowanie (Transact-SQL)
Typy danych i funkcje datowe i czasowe (Transact-SQL)