Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Zwraca aktualny znacznik czasu systemu bazy danych jako wartość daty-czasu bez przesunięcia strefy czasowej bazy danych. Ta wartość pochodzi z systemu operacyjnego komputera, na którym działa instancja SQL Server.
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
GETDATE()
Zwracany typ
datetime
Uwagi
Transact-SQL stwierdzenia mogą odnosić się do GETDATE wszędzie – mogą odnosić się do wyrażenia datetime .
GETDATE jest funkcją niedeterministyczną. Widoki i wyrażenia odnoszące się do tej funkcji w kolumnie nie mogą być indeksowane.
Użycie SWITCHOFFSET z funkcją GETDATE() może powodować wolne działanie zapytania, ponieważ optymalizator zapytań nie jest w stanie uzyskać dokładnych oszaceń kardynalności dla wartości GETDATE. Zalecamy, abyś wstępnie obliczył wartość GETDATE, a następnie określił tę wartość w zapytaniu, jak pokazano w poniższym przykładzie. Dodatkowo użyj wskazówki zapytania OPTION (RECOMPILE), aby wymusić optymalizator zapytań do ponownego skompilowania planu zapytania przy następnym uruchomieniu tego samego zapytania. Optymalizator będzie wtedy miał dokładne oszacowania kardynalności dla GETDATE() i wygenerował bardziej efektywny plan zapytań.
DECLARE @dt datetimeoffset = switchoffset (CONVERT(datetimeoffset, GETDATE()), '-04:00');
SELECT * FROM t
WHERE c1 > @dt OPTION (RECOMPILE);
Przykłady
W poniższych przykładach użyto sześciu funkcji systemowych programu SQL Server, które zwracają bieżącą datę i godzinę, aby zwrócić datę, godzinę lub obie te funkcje. 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();
Oto zestaw wyników.
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());
Oto zestaw wyników.
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. 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());
Oto zestaw wyników.
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)
Poniższe przykłady wykorzystują trzy funkcje systemu SQL Server, które zwracają aktualną datę i czas, aby zwrócić datę, godzinę lub oba te elementy. Wartości są zwracane w serii; w związku z tym ich ułamkowe sekundy mogą być inne.
D. Uzyskanie aktualnej daty i godziny systemu
SELECT SYSDATETIME()
,CURRENT_TIMESTAMP
,GETDATE();
E. Uzyskanie aktualnej daty systemu
SELECT CONVERT (date, SYSDATETIME())
,CONVERT (date, CURRENT_TIMESTAMP)
,CONVERT (date, GETDATE());
F. Uzyskanie bieżącego czasu systemowego
SELECT CONVERT (time, SYSDATETIME())
,CONVERT (time, CURRENT_TIMESTAMP)
,CONVERT (time, GETDATE());