【发布时间】:2012-03-24 10:45:59
【问题描述】:
我有一张如下所示的表格:
id | machine | date | status
----------------------------
1 | 1 | 01-01-2009 | New
1 | 1 | 01-01-2010 | Busted
1 | 2 | 01-01-2010 | New
1 | 1 | 01-01-2012 | Repaired
我需要知道每台机器的每个状态之间的日期差异,如果它是最近的状态并且该机器没有更新的状态,它需要显示列出的最后日期和当前日期之间的差异:
id | machine | date | status | duration
---------------------------------------
1 | 1 | 01-01-2009 | New | 1 year
1 | 1 | 01-01-2010 | Busted | 2 years
1 | 2 | 01-01-2010 | New | 2 years, 2 months, 5 days
1 | 1 | 01-01-2012 | Repaired | 2 months, 5 days
说实话,我不在乎新的持续时间列如何显示日期之间的距离。我尝试自己进行此查询,但失败了。
【问题讨论】:
-
您必须在 MySQL 中执行此操作,还是可以使用 PHP、PERL、Ruby 等执行此操作?