共用方式為


SYSUTCDATETIME (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse Analytics分析平台系統(PDW)Microsoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉儲Microsoft Fabric 中的 SQL 資料庫

傳回 datetime2 值,該值包含 SQL Server 執行個體執行所在電腦的日期與時間。 日期和時間是以國際標準時間 (Coordinated Universal Time,UTC) 傳回。 毫秒的有效位數規格範圍介於 1 至 7 位數之間。 預設有效位數是 7 位數。

考慮:

  • SYSDATETIMESYSUTCDATETIME 的小數秒精確度比 GETDATEGETUTCDATE更多。

  • SYSDATETIMEOFFSET 包含系統時區位移。

  • SYSDATETIMESYSUTCDATETIMESYSDATETIMEOFFSET 可以指派給任一日期和時間類型的變數。

如需所有 Transact-SQL 日期和時間資料類型和函式的概觀,請參閱 日期和時間資料類型和函式

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() AS [SYSDATETIME()],
       SYSDATETIMEOFFSET() AS [SYSDATETIMEOFFSET()],
       SYSUTCDATETIME() AS [SYSUTCDATETIME()],
       CURRENT_TIMESTAMP AS [CURRENT_TIMESTAMP],
       GETDATE() AS [GETDATE()],
       GETUTCDATE() AS [GETUTCDATE()];

結果集如下所示。

SYSDATETIME()       2025-10-20 13:10:02.0474381
SYSDATETIMEOFFSET() 2025-10-20 13:10:02.0474381 -07:00
SYSUTCDATETIME()    2025-10-20 20:10:02.0474381
CURRENT_TIMESTAMP   2025-10-20 13:10:02.047
GETDATE()           2025-10-20 13:10:02.047
GETUTCDATE()        2025-10-20 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());

結果集如下所示。

2025-10-20
2025-10-20
2025-10-20
2025-10-20
2025-10-20
2025-10-20

C. 將日期和時間值轉換為時間

下列範例示範如何將日期和時間值轉換為 時間 資料類型。

DECLARE @DATETIME AS DATETIME = GetDate();
DECLARE @TIME AS TIME;
SELECT @TIME = CONVERT (TIME, @DATETIME);
SELECT @TIME AS 'Time',
       @DATETIME AS 'Date Time';

結果集如下所示。

Time             Date Time
13:49:33.6330000 2025-10-20 13:49:33.633