介紹如何使用 MySQL/MariaDB 資料庫的 NOW()
或 CURDATE()
函數取得目前的時間與時間。
取得目前時間日期
若要在 MySQL/MariaDB 資料庫中取得目前的日期與時間,可以使用 NOW()
函數:
-- 取得目前日期與時間 SELECT NOW();
+---------------------+ | NOW() | +---------------------+ | 2019-10-07 23:27:50 | +---------------------+
若只需要日期的話,則可改用 CURDATE()
函數:
-- 取得目前日期 SELECT CURDATE();
+------------+ | CURDATE() | +------------+ | 2019-10-07 | +------------+
實際應用範例
在許多實際的應用中,資料在儲存時都會設置一個最後更新時間(或日期)欄位,這種狀況就可以直接利用 NOW()
或 CURDATE()
直接產生目前的時間。
這裡為了測試兩種不同格式的最後更新欄位,我們建立一個測試用的 date_test
資料表,其中 last_update1
欄位是以日期加上時間的方式記錄資料最後更新的時間,而 last_update2
欄位則是只記錄日期:
-- 建立 date_test 資料表 CREATE TABLE date_test ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(255), last_update1 DATETIME, last_update2 DATE, PRIMARY KEY (id) );
在一般的狀況下,我們不需要自己產生日期或時間,只要在用 INSERT
插入(或 UPDATE
更新)資料時,直接用 NOW()
或 CURDATE()
產生目前的時間即可。
-- 插入新增資料 INSERT INTO date_test (name, last_update1, last_update2) VALUES ("test1", NOW(), CURDATE());
這樣插入資料時就會自動填入當時的時間:
-- 查詢資料表內容 SELECT * FROM date_test;
+----+-------+---------------------+--------------+ | id | name | last_update1 | last_update2 | +----+-------+---------------------+--------------+ | 1 | test1 | 2019-10-07 23:36:11 | 2019-10-07 | +----+-------+---------------------+--------------+
參考資料:MySQL 官方文件