• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

MySQL/MariaDB 資料庫時間相加、相減計算函數教學與範例

介紹 MySQL/MariaDB 資料庫中各種用於計算時間相加、相減的函數。

推算未來時間(時間相加)

ADDTIME 函數可以用來計算兩個時間的相加,語法如下:

ADDTIME(時間1, 時間2)

其中 時間1 的資料型態可以是 time 或是 datetime,而 時間2 的資料型態則必須為 time,以下是簡單的範例:

-- 時間相加
SELECT ADDTIME('14:20:30', '02:10:20');
+---------------------------------+
| ADDTIME('14:20:30', '02:10:20') |
+---------------------------------+
| 16:30:50                        |
+---------------------------------+
-- 時間相加
SELECT ADDTIME('2019-11-05 14:20:30', '02:10:20');
+--------------------------------------------+
| ADDTIME('2019-11-05 14:20:30', '02:10:20') |
+--------------------------------------------+
| 2019-11-05 16:30:50                        |
+--------------------------------------------+

TIMESTAMPADD 可用來添加一段時間間隔至既有的時間戳記(timestamp)中,其語法為:

TIMESTAMPADD(時間單位, 添加值, 原時間戳記)

其中可用的時間單位有 MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR,以下是簡單的範例:

-- 加上 3 小時
SELECT TIMESTAMPADD(HOUR, 3, '2019-11-05 14:20:30');
+----------------------------------------------+
| TIMESTAMPADD(HOUR, 3, '2019-11-05 14:20:30') |
+----------------------------------------------+
| 2019-11-05 17:20:30                          |
+----------------------------------------------+

推算過去時間(時間相減)

SUBTIME 函數可以用來計算兩個時間的相減,語法跟 ADDTIME 類似:

SUBTIME(時間1, 時間2)

它會計算 時間1 減掉 時間2 的值,其中 時間1 的資料型態可以是 time 或是 datetime,而 時間2 的資料型態則必須為 time,以下是簡單的範例:

-- 時間相減
SELECT SUBTIME('14:20:30', '02:10:20');
+---------------------------------+
| SUBTIME('14:20:30', '02:10:20') |
+---------------------------------+
| 12:10:10                        |
+---------------------------------+
-- 時間相減
SELECT SUBTIME('2019-11-05 14:20:30', '02:10:20');
+--------------------------------------------+
| SUBTIME('2019-11-05 14:20:30', '02:10:20') |
+--------------------------------------------+
| 2019-11-05 12:10:10                        |
+--------------------------------------------+

計算間隔時間(時間相減)

TIMEDIFF 可用來計算兩個時間的間隔時間,其語法如下:

TIMEDIFF(時間1, 時間2)

它會計算 時間1 減掉 時間2 的值,其中 時間1 與 時間2 的資料型態可以是 time 或 datetime,以下是簡單的範例:

-- 計算間隔時間
SELECT TIMEDIFF('2019-11-13 12:33:26', '2019-11-05 14:20:30');
+--------------------------------------------------------+
| TIMEDIFF('2019-11-13 12:33:26', '2019-11-05 14:20:30') |
+--------------------------------------------------------+
| 190:12:56                                              |
+--------------------------------------------------------+
-- 計算間隔時間
SELECT TIMEDIFF('14:20:30', '12:33:26');
+----------------------------------+
| TIMEDIFF('14:20:30', '12:33:26') |
+----------------------------------+
| 01:47:04                         |
+----------------------------------+

若 時間1 小於 時間2,則計算出來的結果就會是負的值:

-- 計算間隔時間
SELECT TIMEDIFF('2019-11-05 14:20:30', '2019-11-13 12:33:26');
+--------------------------------------------------------+
| TIMEDIFF('2019-11-05 14:20:30', '2019-11-13 12:33:26') |
+--------------------------------------------------------+
| -190:12:56                                             |
+--------------------------------------------------------+

TIMESTAMPDIFF 也可以用來計算時間間隔,不過它會將計算結果轉換為指定的單位:

TIMESTAMPDIFF(時間單位, 時間1, 時間2)

其可用的 時間單位 跟 TIMESTAMPADD 函數相同,以下是簡單的範例:

-- 計算間隔時間
SELECT TIMESTAMPDIFF(DAY,'2019-11-05 14:20:30', '2019-11-13 12:33:26');
+-----------------------------------------------------------------+
| TIMESTAMPDIFF(DAY,'2019-11-05 14:20:30', '2019-11-13 12:33:26') |
+-----------------------------------------------------------------+
|                                                               7 |
+-----------------------------------------------------------------+

TIMESTAMPDIFF 在計算時是以 時間2 減掉 時間1,剛好跟 TIMEDIFF 相反。

參考資料:MySQL 官方文件

分類:資料庫 標籤:MySQL/MariaDB

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • Linux 檢查、測試 CPU AES-NI 硬體加速加密指令集教學
  • CentOS Linux 7.9 自行編譯、安裝 OpenSSH 9.0p1 伺服器教學與範例
  • Python 使用 zipfile 模組壓縮、解壓縮 ZIP 檔案教學與範例
  • Python 以 LINE Notify 自動傳送即時訊息、圖片教學與範例
  • Linux 使用 Prometheus 與 Grafana 監控伺服器狀態、發送告警 Email 簡訊教學與範例
  • Linux 設定 pam_tty_audit 記錄 SSH 使用者操作指令教學與範例
  • Linux 封鎖、解鎖登入失敗次數過多的帳號 pam_faillock 教學與範例
  • Python 使用 pytube 自動下載 YouTube 影片教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide