【发布时间】:2014-04-17 20:03:24
【问题描述】:
我有一个按日期存储的假期表,所以他们有一年:
Christmas 2014-12-25
Birthday 2014-05-12
Holiday 3 2015-11-27
假设今天是 2020 年 11 月 1 日。如何按月、日发生的顺序检索接下来三个月的假期?所以记录集应该是这样的:
Holiday 3 2015-11-27
Christmas 2014-12-25
编辑:如果我修改表格以将月份和日期包含在单独的列中,下面 PressingOnAlways 建议,我如何查询日期范围?
Holiday Year Month Date
Christmas 2014 12 25
Birthday 2014 05 12
Holiday 3 2015 11 27
【问题讨论】:
-
并非所有假期都在每年的同一天。其中很多是基于月份的布局(例如,母亲节是在五月的第二个星期日),有些甚至更复杂(例如,复活节和其他一些宗教节日)。因此,无法按照您要求的方式使用您拥有的数据!
-
Duskwuff 是正确的,这仅适用于生日或静态月/日假期。
-
好的,我已经修改了示例。
-
对于任何感兴趣的人,我在 MS-SQL 中编写了一个 UDF 来动态计算任何给定年份的假期。我从未将它转换为 mySQL,但如果有人想转换并使用它,可以在 joebooth-consulting.com/sqlServer/sqlServer.html#CalendFunc 获得它。