同一个表中两个记录之间的日期差异

时间:2011-03-27 13:27:13

标签: mysql sql

我有一张表(job_logs),其中包含以下记录: idjob_iduser_idstatuscreated_atjob_type

每次作业开始运行时,记录都会写在job_log表中status='started'。当作业完成运行时,另一条记录将添加到包含status='completed'的表中。

两个记录都具有相同的user_idjob_type job_id (由运行作业的流程决定 - 这两条记录都是唯一的。)

我想要一个查询,它将返回表中的所有这些记录对(按id desc排序),但棘手的部分是我想要将具有“已完成”状态的记录添加到作业运行的时间(completed.created_at - started.created_at)。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

SELECT j1.job_id AS job_id, (j2.created_at - j1.created_at) AS time_run
FROM job_logs j1 INNER JOIN job_logs j2 ON (j1.job_id = j2.job_id)
WHERE j1.status = 'started' AND j2.status = 'completed'