SYSDATETIME(Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsMicrosoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉庫Microsoft Fabric 中的 SQL 資料庫

SYSDATETIME Transact-SQL(T-SQL)函式會回傳一個datetime2(7)值,其中包含該實例執行的電腦的日期與時間SQL Server。

注意

SYSDATETIME 和 SYSUTCDATETIME 的小數秒精確度比 GETDATE 和 GETUTCDATE更多。 SYSDATETIMEOFFSET 包含系統時區位移。 SYSDATETIME、 SYSUTCDATETIME、 可以 SYSDATETIMEOFFSET 指派給任一日期和時間類型的變數。

Azure Synapse Analytics 跟隨 UTC. 如果你需要解讀非UTC時區的日期和時間資訊,請在Azure Synapse Analytics中使用AT時區。

注意

Azure SQL Database 與 Microsoft Fabric 中的 SQL 資料庫支援將預設時區從通用協調時間(UTC)更改。 如果你在 資料庫 或 會話 層級修改時區,這個函式會根據設定的時區值回傳本地時間。 欲了解更多資訊,請參閱 ALTER DATABASE SCOPED CONFIGURATIONTIMESET ZONE。

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

Transact-SQL 語法慣例

語法

SYSDATETIME ( )

傳回類型

datetime2(7)

備註

Transact-SQL 語句可以指代 SYSDATETIME 任何可以指向 datetime2(7) 表達式的地方。

SYSDATETIME 是非決定性函式。 你無法索引在欄位中引用此函式的視圖和表達式。

注意

SQL Server 透過 GetSystemTimeAsFileTime() Windows API 取得日期與時間值。 精確度取決於 SQL Server 執行個體執行所在的電腦硬體與 Windows 版本。 此 API 的精確度是固定於 100 奈秒。 你可以使用 GetSystemTimeAdjustment() Windows API 來判斷準確度。

範例

下列範例會使用六個可傳回目前日期與時間的 SQL Server 系統函數,來傳回日期、時間或這兩者。 由於這些值會依序傳回,因此其小數秒數可能會不同。

在這些例子中,假設目前日期是2026年4月30日。

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

範例:Azure Synapse Analytics

D. 取得目前的系統日期和時間

SELECT SYSDATETIME();

結果集如下所示。

--------------------------
4/30/2026 1:10:02 PM