大家好,我需要帮助这个功能,我正在使用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
条件,我不知道该怎么做?
答案 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