摘要:在本教程中,您將學習如何使用 SQL CURRENT_DATE 函式獲取當前日期。
SQL CURRENT_DATE 函式簡介 #
CURRENT_DATE 函式返回資料庫伺服器所在機器的當前日期。
這是 CURRENT_DATE 函式的語法:
CURRENT_DATECode language: SQL (Structured Query Language) (sql)請注意,CURRENT_DATE 函式不需要括號,因為它是 SQL 中的一個保留字。
CURRENT_DATE 函式返回一個不帶時間部分的 DATE 型別的值。
在實踐中,您會發現 CURRENT_DATE 函式在將日期與當前日期進行比較和篩選時非常有用。
SQL CURRENT_DATE 函式示例 #
讓我們看一些使用 CURRENT_DATE 函式的例子。
檢索當前日期 #
以下語句使用 CURRENT_DATE 函式檢索當前日期:
SELECT CURRENT_DATE AS today;Code language: SQL (Structured Query Language) (sql)這是我們在 2025年1月20日 執行該語句時的輸出:
today
------------
2025-01-20Code language: SQL (Structured Query Language) (sql)輸出表明日期格式為 YYYY-MM-DD,這是日期的 ISO 標準格式。
使用 CURRENT_DATE 函式作為預設值 #
在建立新表或向現有表新增列時,您可以將 CURRENT_DATE 函式用作列的預設值。例如:
首先,建立一個名為 salary_changes 的新表,該表使用 CURRENT_DATE 函式作為列的預設值:
CREATE TABLE salary_changes (
employee_id INT NOT NULL,
changed_date DATE NOT NULL DEFAULT CURRENT_DATE,
salary DEC NOT NULL,
PRIMARY KEY (employee_id, changed_date)
);Code language: SQL (Structured Query Language) (sql)其次,向 salary_changes 表插入一個新行:
INSERT INTO
salary_changes (employee_id, salary)
VALUES
(100, 25000);Code language: SQL (Structured Query Language) (sql)當您插入一個新行而沒有為 changed_date 列提供值時,資料庫系統會使用當前日期作為該列的值。
第三,從 salary_changes 表中檢索資料:
SELECT * FROM salary_changes;Code language: SQL (Structured Query Language) (sql)這是我們在 2025年1月20日 執行插入語句時的輸出:
employee_id | changed_date | salary
-------------+--------------+--------
100 | 2025-01-20 | 25000Code language: SQL (Structured Query Language) (sql)與其他日期比較 #
您可以使用 CURRENT_DATE 函式與其他日期進行比較。
例如,以下語句查詢今天之前有薪資變動的員工:
SELECT
first_name,
last_name,
s.salary new_salary
FROM
salary_changes s
INNER JOIN employees e ON e.employee_id = s.employee_id
WHERE
changed_date < CURRENT_DATE;Code language: SQL (Structured Query Language) (sql)從當前日期增加或減少天數 #
您可以從當前日期增加或減少一個時間間隔。例如:
SELECT CURRENT_DATE + INTERVAL '7 DAY' AS next_week,
CURRENT_DATE - INTERVAL '7 DAY' AS last_week;Code language: SQL (Structured Query Language) (sql)在 Oracle 資料庫和 SQL Server 中獲取當前日期 #
Oracle 資料庫的 CURRENT_DATE 函式返回一個包含日期和時間的值。要獲取不帶時間的當前日期,您可以使用 TRUNC 函式來截斷時間部分:
SELECT
TRUNC(CURRENT_DATE)
FROM
dual;Code language: SQL (Structured Query Language) (sql)SQL Server 不支援 CURRENT_DATE 函式。但是,它提供了一個名為 GETDATE() 的函式,該函式返回當前日期和時間。
要獲取當前日期,您需要將 CAST() 函式與 GETDATE() 函式結合使用,如下面的語句所示:
SELECT CAST(GETDATE() AS DATE) 'Current Date';Code language: SQL (Structured Query Language) (sql)摘要 #
- 使用 SQL
CURRENT_DATE函式返回格式為YYYY-MM-DD的當前日期。