1

我有一张包含各种日期的用户表,例如生日、雇用日期和年度审核日期。生日可能有一年,也可能没有,入职日期有一年,审核日期没有一年。

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

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

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 天的日期并不完全相同,因为我需要在给定日期范围内具有正确年份的重复日期,如果范围足够大,可能会超过多年。

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

4

0 回答 0