適用於:SQL Server
Azure SQL Database
Azure SQL 受控執行個體
Azure Synapse Analytics
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的倉庫
Microsoft Fabric 中的 SQL 資料庫
SYSUTCDATETIME Transact-SQL(T-SQL)函式回傳一個 datetime2 值,其中包含執行 SQL Server 實例所在電腦的日期與時間。 日期和時間是以國際標準時間 (Coordinated Universal Time,UTC) 傳回。 毫秒的有效位數規格範圍介於 1 至 7 位數之間。 預設有效位數是 7 位數。
考慮:
SYSDATETIME和SYSUTCDATETIME的小數秒精確度比GETDATE和GETUTCDATE更多。SYSDATETIMEOFFSET包含系統時區位移。SYSDATETIME、SYSUTCDATETIME和SYSDATETIMEOFFSET可以指派給任一日期和時間類型的變數。
如需所有 Transact-SQL 日期和時間資料類型和函式的概觀,請參閱 日期和時間資料類型和函式。
Syntax
SYSUTCDATETIME ( )
傳回類型
datetime2
Remarks
Transact-SQL 語句可以參照 SYSUTCDATETIME 到可以參考 datetime2 表達式的任何位置。
SYSUTCDATETIME 是非決定性函式。 無法為資料行中參考此函式的檢視和運算式編製索引。
Note
SQL Server 會使用 GetSystemTimeAsFileTime() Windows API 取得日期和時間值。 精確度取決於 SQL Server 執行個體執行所在的電腦硬體與 Windows 版本。 此 API 的精確度是固定於 100 奈秒。 精確度可以使用 Windows API 來判斷 GetSystemTimeAdjustment() 。
Examples
下列範例會使用六個可傳回目前日期與時間的 SQL Server 系統函數,來傳回日期、時間或這兩者。 由於這些值會依序傳回,因此其小數秒數可能會不同。
A. 顯示日期和時間函式所傳回的格式
下列範例示範日期和時間函數所傳回的不同格式。
SELECT SYSDATETIME(),
SYSDATETIMEOFFSET(),
SYSUTCDATETIME(),
CURRENT_TIMESTAMP,
GETDATE(),
GETUTCDATE(),
CURRENT_DATE;
結果集如下所示。
SYSDATETIME() 2026-09-01 16:15:37.7418724
SYSDATETIMEOFFSET() 2026-09-01 16:15:37.7418724 -06:00
SYSUTCDATETIME() 2026-09-01 22:15:37.7418724
CURRENT_TIMESTAMP 2026-09-01 16:15:37.740
GETDATE() 2026-09-01 16:15:37.740
GETUTCDATE() 2026-09-01 22:15:37.740
CURRENT_DATE 2026-09-01
B. 將日期和時間轉換為日期
下列範例示範如何將日期和時間值轉換成 日期 數據類型。
SELECT CONVERT (DATE, SYSDATETIME()),
CONVERT (DATE, SYSDATETIMEOFFSET()),
CONVERT (DATE, SYSUTCDATETIME()),
CONVERT (DATE, CURRENT_TIMESTAMP),
CONVERT (DATE, GETDATE()),
CONVERT (DATE, GETUTCDATE()),
CURRENT_DATE;
結果集如下所示。
SYSDATETIME() 2026-09-01
SYSDATETIMEOFFSET() 2026-09-01
SYSUTCDATETIME() 2026-09-01
CURRENT_TIMESTAMP 2026-09-01
GETDATE() 2026-09-01
GETUTCDATE() 2026-09-01
CURRENT_DATE 2026-09-01
C. 將日期和時間值轉換為時間
下列範例示範如何將日期和時間值轉換為 時間 資料類型。
SELECT CONVERT (TIME, SYSDATETIME()),
CONVERT (TIME, SYSDATETIMEOFFSET()),
CONVERT (TIME, SYSUTCDATETIME()),
CONVERT (TIME, CURRENT_TIMESTAMP),
CONVERT (TIME, GETDATE()),
CONVERT (TIME, GETUTCDATE());
結果集如下所示。
SYSDATETIME() 16:15:37.7418724
SYSDATETIMEOFFSET() 16:15:37.7418724
SYSUTCDATETIME() 22:15:37.7418724
CURRENT_TIMESTAMP 16:15:37.740
GETDATE() 16:15:37.740
GETUTCDATE() 22:15:37.740