【问题标题】:How to sum time interval stored as string in MySQL like 5 days 10:20:00如何将存储为 MySQL 中字符串的时间间隔相加,如 5 天 10:20:00
【发布时间】:2020-10-03 17:01:22
【问题描述】:
我需要编写一个选择查询来汇总 MySQL 表中的时间间隔,其中时间间隔存储为文本,格式类似于以下
10 days 3:28:31
在 PostgreSQL 查询中,我们可以简单地使用 ::interval 并将其转换为区间,我们可以在 PostgreSQL 查询中使用 Sum 方法,但我无法在 MySQL 中执行相同操作。任何帮助将不胜感激。
【问题讨论】:
标签:
mysql
sql
postgresql
select
【解决方案1】:
MySQL 没有interval 数据类型。它确实使用了interval 关键字——这有点令人困惑。但这是一个句法元素,而不是一种数据类型。
您可以做的一件事是使用time 数据类型。这支持长达 838 小时或大约 35 天的时间。这对于许多用途来说已经足够了。
否则,建议使用单个时间单位并将值存储为数字量。例如,“5 天 10:20:00”将是:
- 5.43055555556 天(5 + 10 / 24 + 20 / (24*60))
- 130.333333333 小时
- 7820 分钟