Mysql 选择日期范围内的重复日期,该日期范围可能有年份,也可能没有年份
我有一个用户表,上面有各种日期,如生日、雇佣日期和年度审核日期。生日可能有一年,也可能没有一年,雇佣日期有一年,审查日期没有一年 我希望返回一个跨日期范围的查询,该查询返回的行包含为这些重复事件的日期范围的年份计算的日期 例如: 具有以下功能的用户:Mysql 选择日期范围内的重复日期,该日期范围可能有年份,也可能没有年份,mysql,date-range,recurring-events,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-
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
我意识到这可能会在每个日期字段的单独联合查询中完成,这很好。这与在未来查找日期x天不是完全相同的问题,因为我需要在给定日期范围内具有适当年份的重复日期,如果范围足够大,则可能超过多年
我只能考虑按程序来做这件事。首先检查开始和结束范围是否跨越一年。然后将日期分为开始日期到年底、开始日期到结束日期等,并为每个跨度运行查询。如何表示查询中的范围?作为开始日期和结束日期?是的。用户将在应用程序中选择并提交开始和结束日期,如2012-05-01至2013-12-01。我在想这样的事情:选择stru_TO_DATECONCATYEAR@startyear,'-',MONTHdob,,'-',MONTHdob作为来自STR_TO的用户的dob_DATECONCATYEAR@startyear,“-”,MONTHdob,,“-”,MONTHdob介于@startyear和@endyear之间,但这取决于按如下方式处理开始/结束日期:2012-05-01-2012-12-31 2013-01-01-2013-12-01,并使用两个范围合并查询