CURRENT_DATE (Transact-SQL)

適用於: SQL Server 2025 (17.x) Azure SQL Database AzureSQL Managed InstanceSQL database in Microsoft Fabric

CURRENT_DATE Transact-SQL(T-SQL)函式會以日期值回傳當前資料庫系統日期,未包含資料庫時間與時區偏移。 CURRENT_DATE此值源自 資料庫引擎 所運行的底層作業系統。

注意

SYSDATETIME 和 SYSUTCDATE 比 GETDATE 和 GETUTCDATE 具有更高的精確度,以小數秒數有效位數來度量。 SYSDATETIMEOFFSET 函式包含系統時區位移。 您可以將 SYSDATETIME、SYSUTCDATETIME 和 SYSDATETIMEOFFSET 指派給任何日期和時間類型的變數。

此函式是相當於的 ANSI SQL CAST(GETDATE() AS DATE)。 如需詳細資訊,請參閱 GETDATE。

注意

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

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

Transact-SQL 語法慣例

Syntax

CURRENT_DATE

引數

這個函數沒有引數。

傳回類型

date

備註

Transact-SQL 語句可以參考 CURRENT_DATE 任何可以參考 日期 表達式的地方。

CURRENT_DATE 是非決定性函數。 參考此數據行的檢視和表達式無法編製索引。

範例

這些範例會使用傳回目前日期和時間值的系統函式來傳回日期、時間或兩者。 由於這些範例會依序傳回值,因此其小數秒數可能會不同。 傳回的實際值會反映實際執行日期/時間。

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