資料庫

MySQL/MariaDB 資料庫取得今天日期、現在時間教學與範例

介紹如何使用 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 官方文件

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

9 個月 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

9 個月 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

9 個月 ago

Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例

本篇介紹如何在 Windows...

10 個月 ago

Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例

介紹如何在 Linux 中使用...

11 個月 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

11 個月 ago