如何从另一组日期中减去一列日期,最后添加所有行

时间:2012-07-11 18:46:33

标签: php mysql sql

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

这么简单吗?

3 个答案:

答案 0 :(得分:1)

我可能会通过在MySQL中使用UNIX_TIMESTAMP()将日期转换为unix时间戳来实现此目的,然后更容易进行这样的计算。

类似的东西:

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

这将为您提供所有差异的总和,以秒为单位。

答案 1 :(得分:0)

select sum(timediff(`start`, `end`)) as diff_sum
from your_table

答案 2 :(得分:0)

你可以使用datediff来获取天数,或者使用timediff来获得像'01:23:45'这样的时间, 或者我最喜欢的unix时间戳,它返回了一些数据

UNIX_TIMESTAMP(end) - UNIX_TIMESTAMP(start) AS sec