獲取時間差並將其轉換為 MySQL 中的小時?


藉助 MySQL 的 timestampdiff() 方法,你可以實現該功能。語法如下所示 −

語法

SELECT ABS(TIMESTAMPDIFF(HOUR,yourColumnName1,yourColumnName2)) as
anyVariableName from yourTableName;

為了理解上述語法,我們建立一個表。建立表的查詢如下所示 −

mysql> create table DifferenceInHours
   -> (
   -> StartDateTime datetime,
   -> EndDateTime datetime
   -> );
Query OK, 0 rows affected (0.59 sec)

使用 insert 命令在表中插入一些記錄。查詢如下所示 −

mysql> insert into DifferenceInHours values('2018-12-20 10:00:00', '2018-12-19 12:00:00');
Query OK, 1 row affected (0.11 sec)

mysql> insert into DifferenceInHours values('2018-12-20 11:00:00', '2018-12-19 11:00:00');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DifferenceInHours values('2018-12-20 10:30:00', '2018-12-19 11:00:00');
Query OK, 1 row affected (0.13 sec)

使用 select 語句顯示錶格中的所有記錄。查詢如下所示 −

mysql> select *from DifferenceInHours;

輸出

+---------------------+---------------------+
| StartDateTime       | EndDateTime         |
+---------------------+---------------------+
| 2018-12-20 10:00:00 | 2018-12-19 12:00:00 |
| 2018-12-20 11:00:00 | 2018-12-19 11:00:00 |
| 2018-12-20 10:30:00 | 2018-12-19 11:00:00 |
+---------------------+---------------------+
3 rows in set (0.00 sec)

以下查詢獲取時間差(以小時為單位)。查詢如下所示 −

mysql> SELECT ABS(TIMESTAMPDIFF(HOUR,StartDateTime,EndDateTime)) as Hour from
DifferenceInHours;

以下是顯示時間差(以小時為單位)的輸出 −

+------+
| Hour |
+------+
|   22 |
|   24 |
|   23 |
+------+
3 rows in set (0.00 sec)

更新時間:2020-06-25

2000 多次瀏覽

啟動你的事業

完成課程即可獲得認證

開始
廣告
© . All rights reserved.