【发布时间】:2013-02-15 21:59:27
【问题描述】:
我有这张表,但我无能为力如何从这张表中计算每一天的秒数:
id from to
---------------------------------------------------
1 2013-01-31 23:50:00 2013-02-02 09:00:00
2 2013-02-05 11:21:12 2013-02-08 01:01:01
3 2013-02-08 17:33:44 2013-02-08 18:22:55
4 2013-02-12 01:40:12 2013-02-12 02:00:59
5 2013-02-28 01:40:12 2013-03-02 02:00:59
现在我需要在 2 月的 from 和 to 之间增加每一天的秒数。 所以对于 2 月 1 日 - x 秒、2 月 2 日 - y 秒、2 月 3 日 - 0 秒等。知道我该怎么做吗?非常感谢。
【问题讨论】:
-
@dom:OP 想要按天分组的结果。
-
要让 SQL 查询返回您想要的结果,您必须将表与包含您希望获得结果的日期的列连接起来。 MySQL 本身不提供任何方法来生成给定时间间隔内的所有日期(甚至整数),因此您必须在应用程序层中实现这样的表,或者在 MySQL 中存储一个程序来生成这样的临时表。如果执行后者,您还可以在 MySQL 中存储一个程序,以更直接地构建您想要的结果集。这一切都表明 MySQL 可能不是解决这个问题的最佳工具。
-
为每个 fromDate 提供部分数量的细微变化:选择 fromDate, sum(seconds) from (SELECT id, TIMESTAMPDIFF(SECOND,
from,to) as seconds, date(from) as fromDate from t1 ) t2 group by fromDate; rextester.com/QEPL38222
标签: mysql