选择可能有或可能没有年份的日期范围内的重复日期

时间:2013-12-16 21:35:02

标签: mysql date-range recurring-events

我有一个用户表,其中包含各种日期,如生日,雇用日期和年度审核日期。生日可能有也可能没有一年,雇用日期确实有一年,而审核日期则没有一年。

我希望在日期范围内返回一个查询,该日期范围返回的行包含为这些重复事件的日期范围年份计算的日期。

例如: 具有以下内容的用户:

dob:1980-05-05  
doh:2005-06-22  
review:0000-10-01

然后,如果我查询一系列的说法,2012-05-01到2013-12-01我希望它能返回如下记录:

Event,Date  
dob,2012-05-05  
doh,2012-06-22  
review,2012-10-01  
dob,2013-05-05  
doh,2013-06-22  
review:2013-10-01  

我意识到这可能会在每个日期字段的单独UNION查询中完成,这很好。这与查找未来x天的问题不完全相同,因为我需要在给定日期范围内使用适当年份的重复日期,如果范围足够大,可能会超过多年。

我只能想到以编程方式执行此操作。首先检查开始和结束范围是否跨越一年。然后将日期分为开始日期到年末,年初到结束日期等,并为每个跨度运行查询。

0 个答案:

没有答案