我有data
带有列start
和的表End
。列 start 和 end 具有以下格式的日期和时间: 2012-04-06 07:43:05 。我需要这样做:结束 - 开始(显然对于每一行)并将所有结果时间加起来。[仅时间字段减法就足够了,因为开始和结束的日期可能相同]
有什么简单的方法可以做到这一点?
我可能会通过在 MySQL 中使用 UNIX_TIMESTAMP() 将日期转换为 unix 时间戳来解决此问题,然后更容易进行您想要的这些计算。
就像是:
SELECT
SUM(UNIX_TIMESTAMP(`End`) - UNIX_TIMESTAMP(`start`)) AS time_sum
FROM
data
这将在几秒钟内为您提供所有差异的总和。
select sum(timediff(`start`, `end`)) as diff_sum
from your_table
您可以使用 datediff 来获取天数,或者使用 timediff 来获取像“01:23:45”这样的时间,或者我最喜欢的返回秒数的 unix 时间戳
UNIX_TIMESTAMP(end) - UNIX_TIMESTAMP(start) AS sec