-1

我有data带有列start和的表End。列 start 和 end 具有以下格式的日期和时间: 2012-04-06 07:43:05 。我需要这样做:结束 - 开始(显然对于每一行)并将所有结果时间加起来。[仅时间字段减法就足够了,因为开始和结束的日期可能相同]

有什么简单的方法可以做到这一点?

4

3 回答 3

1

我可能会通过在 MySQL 中使用 UNIX_TIMESTAMP() 将日期转换为 unix 时间戳来解决此问题,然后更容易进行您想要的这些计算。

就像是:

SELECT
   SUM(UNIX_TIMESTAMP(`End`) - UNIX_TIMESTAMP(`start`)) AS time_sum
FROM
   data

这将在几秒钟内为您提供所有差异的总和。

于 2012-07-11T18:54:18.480 回答
0
select sum(timediff(`start`, `end`)) as diff_sum
from your_table
于 2012-07-11T18:52:02.257 回答
0

您可以使用 datediff 来获取天数,或者使用 timediff 来获取像“01:23:45”这样的时间,或者我最喜欢的返回秒数的 unix 时间戳

UNIX_TIMESTAMP(end) - UNIX_TIMESTAMP(start) AS sec
于 2012-07-11T18:52:18.853 回答