MySQL 同一列记录的时间戳差异
MySQL timestampdiff of records on same column
我有一个 table,我试图在其中对同一列的时间求和。我有一列记录任何事件的所有时间条目。所以,我想按网关 ID 对它们进行分组,并以小时、分钟和秒为单位获取值。我曾尝试使用 timestampdiff,但它需要三个参数,而且由于我只有一行,所以我找不到方法。那可能吗?我的 table 看起来像这样:
+----+---------+---------------------+
| id | gateway | timestamp |
+----+---------+---------------------+
| 1 | 1 | 2018-03-21 08:52:51 |
| 2 | 1 | 2018-03-21 08:52:54 |
| 3 | 1 | 2018-03-21 08:52:58 |
| 4 | 1 | 2018-03-21 08:53:11 |
| 5 | 2 | 2018-03-21 08:53:51 |
| 6 | 1 | 2018-03-21 08:54:21 |
| 7 | 2 | 2018-03-21 08:54:32 |
| 8 | 2 | 2018-03-21 08:54:44 |
| 9 | 2 | 2018-03-21 08:54:53 |
| 10 | 2 | 2018-03-21 08:55:01 |
+----+---------+---------------------+
基本上我想按他们的网关对所有记录进行分组,然后在那里计算时间总和。
提前致谢!
我想你想要:
select gateway,
timestampdiff(seconds, min(timestamp), max(timestamp))
from t
group by gateway;
我对你的问题有点困惑,因为 timestampdiff()
需要三个参数,而不是两个。
我有一个 table,我试图在其中对同一列的时间求和。我有一列记录任何事件的所有时间条目。所以,我想按网关 ID 对它们进行分组,并以小时、分钟和秒为单位获取值。我曾尝试使用 timestampdiff,但它需要三个参数,而且由于我只有一行,所以我找不到方法。那可能吗?我的 table 看起来像这样:
+----+---------+---------------------+
| id | gateway | timestamp |
+----+---------+---------------------+
| 1 | 1 | 2018-03-21 08:52:51 |
| 2 | 1 | 2018-03-21 08:52:54 |
| 3 | 1 | 2018-03-21 08:52:58 |
| 4 | 1 | 2018-03-21 08:53:11 |
| 5 | 2 | 2018-03-21 08:53:51 |
| 6 | 1 | 2018-03-21 08:54:21 |
| 7 | 2 | 2018-03-21 08:54:32 |
| 8 | 2 | 2018-03-21 08:54:44 |
| 9 | 2 | 2018-03-21 08:54:53 |
| 10 | 2 | 2018-03-21 08:55:01 |
+----+---------+---------------------+
基本上我想按他们的网关对所有记录进行分组,然后在那里计算时间总和。
提前致谢!
我想你想要:
select gateway,
timestampdiff(seconds, min(timestamp), max(timestamp))
from t
group by gateway;
我对你的问题有点困惑,因为 timestampdiff()
需要三个参数,而不是两个。