我有一张包含工作历史的表格,其中包含开始和结束日期,可能会有重叠的工作。我需要找到日期中一个月或更长时间的所有差距。理想情况下我会用PHP来做,但如果可以编写一个MySQL查询来更好地处理这个问题,那就没关系了。
这是数据结构:
CREATE TABLE employer_history (
EmployerID int(11) NOT NULL AUTO_INCREMENT,
ehFromDate date DEFAULT NULL,
ehToDate date DEFAULT NULL,
PRIMARY KEY (EmployerID) )
ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
我想使用ehFromDate和ehToDate检查每条记录,以找出差距,即。
ehFromDate = 2004-06-24
ehToDate = 2007-03-11
ehFromDate = 2007-03-12
ehToDate = 2007-08-15
ehFromDate = 2007-06-13
ehToDate = 2007-09-02
ehFromDate = 2007-10-23
ehToDate = 2008-02-14
ehFromDate = 2008-02-15
ehToDate = 2011-09-30
上述日期意味着2007-09-02至2007-10-23之间存在差距。
此刻我无法深入探讨解决这个问题的最佳方法。如果我能保证永远不会有重叠,那么它就非常直接。上面的例子有重叠来说明我的观点。
非常感谢任何想法。
干杯
乔恩