嗨,编程大师,
我需要帮助。这是一个员工数据 NULL
在 TerminationDate
参照当前日期,表示该员工仍在工作。我需要找到最长的时间(天)没有人雇用或终止。
表名: Employee
列名: ID
, HireDate
, TerminationDate
```
Employee
ID HireDate TerminationDate
1 2009-06-20 2016-01-01
2 2010-02-12 NULL
3 2012-03-14 NULL
4 2013-09-10 2014-01-01
5 2013-09-10 NULL
6 2015-04-10 2015-05-01
7 2010-04-11 2016-01-01
8 2012-05-12 NULL
9 2011-04-13 2015-02-13
我已经制定了需要做什么的流程
合并数据 `HireDate` 以及 `TerminationDate` (应该有18行)
订购日期
从第(n)行和第(n-1)行中找出每个日期之间的差异
获得最大差异
然而,我不知道如何在mysql中实现它,也不知道它是否可行。我想知道有没有别的方法?请帮帮我
1条答案
按热度按时间eh57zj3b1#
在mysql版本8之前,这是相当复杂的。但你可以做到:
请注意,这将根据当前日期查找最近的期间。您可以通过更换
curdate()
不管你想什么截止日期。如果您不想要最新的时段,请添加where next_dte is not null
到外部查询。