与日志表的日期差异

时间:2016-04-28 12:37:22

标签: mysql

大家好,我需要帮助这个功能,我正在使用MySQL数据库服务器 版本:5.5.47-0ubuntu0.14.04.1 - (Ubuntu)。

我希望能够获得雇佣工人需要多少“周”。我有一个表,可以在工人状态发生变化时存储日志数据。

logid   workerid   statusid       timestamp
1000    10         1(available)   2016-04-10
1001    10         2(Hired)       2016-04-24

我想拥有的是: 工人10周需要雇用。

我已经查看了DATEDIFF(first date, second date)函数,但我必须为每个日期使用两个不同的where条件,我不知道该怎么做?

1 个答案:

答案 0 :(得分:0)

您需要加入同一个表并使用DATEDIFF()

SELECT
    e1.workerid,
    DATEDIFF(e2.`timestamp`, e1.`timestamp`) daysDiff,
    ROUND(DATEDIFF(e2.`timestamp`, e1.`timestamp`) / 7, 0) weeksDiff
FROM
    employees e1
    INNER JOIN employees e2 ON e1.workerid = e2.workerid
WHERE
    e1.statusid = 1
    AND e2.statusid = 2

输出:

+----------+----------+-----------+
| workerid | daysDiff | weeksDiff |
+----------+----------+-----------+
|       10 |       14 |         2 |
+----------+----------+-----------+
1 row in set