適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的倉儲
Microsoft Fabric 中的 SQL 資料庫
傳回 datetime2(7) 值,此值包含 SQL Server 執行個體執行所在電腦的日期和時間。
注意
SYSDATETIME 和 SYSUTCDATETIME 比 GETDATE 和 GETUTCDATE 具有更多小數秒數有效位數。 SYSDATETIMEOFFSET 包含系統時區位移。 SYSDATETIME、SYSUTCDATETIME 和 SYSDATETIMEOFFSET 可指派給任何日期和時間類型的變數。
Azure SQL Database (Azure SQL 受控執行個體除外) 與 Azure Synapse Analytics 會遵循 UTC。 在 Azure SQL Database 或 Azure Synapse Analytics 中,如果您需要解譯非 UTC 時區的日期與時間資訊,請使用 AT TIME ZONE。
如需所有 Transact-SQL 日期和時間資料類型與函式的概觀,請參閱日期和時間資料類型與函式 (Transact-SQL)。
語法
SYSDATETIME ( )
傳回類型
datetime2(7)
備註
只要 Transact-SQL 陳述式可以參考 datetime2(7) 運算式,就可以參考 SYSDATETIME。
SYSDATETIME 是不具決定性的函數。 在資料行中參考這個函數的檢視表和運算式無法編製索引。
注意
SQL Server 會使用 GetSystemTimeAsFileTime() Windows API 來取得日期與時間值。 精確度取決於 SQL Server 執行個體執行所在的電腦硬體與 Windows 版本。 此 API 的精確度是固定於 100 奈秒。 正確性可藉由使用 GetSystemTimeAdjustment() Windows API 來判斷。
範例
下列範例會使用六個可傳回目前日期和時間的 SQL Server 系統函數來傳回日期、時間或這兩者。 由於這些值會依序傳回,因此其小數秒數可能會不同。
A. 取得目前的系統日期和時間
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. 取得目前的系統日期
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. 取得目前的系統時間
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
*/
範例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
D:取得目前的系統日期和時間
SELECT SYSDATETIME();
結果集如下所示。
--------------------------
7/20/2013 2:49:59 PM