• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
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

讀者互動方式

發佈留言 取消回覆

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

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

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

關注本站

  • 電子郵件
  • Facebook

公益

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

Copyright © 2021 · Office Guide