我正在寻找一个与特定日历日期的EVENTS相对应的定期日期计算器。每个事件都有其自己的规则。例如EVENT的规则是“发生在每月的星期二,开始日期为2019年9月17日星期二。即时通讯使用时间维度表,每个日期都填充到2025年。使用这些日期我在WHERE子句中使用过
WHERE dayname = 'tuesday' and ( DATEDIFF(DAY, '2019-09-17', Calendar_Date) % 28 ) = 0 to get monthly tuesdays.
但是当一个月有两个5个星期二时,我遇到了问题。 3-3-2020和3-31-2020。需要日期填充为4-7-2020,而不是3-31-2020。
任何人都可以提供解决方案的帮助吗?
通过查询,您已经非常接近。所有您需要做的就是子选择
SELECT MIN(CalendarDate) AS CalendarDate
FROM (your query goes here) AS d
GROUP BY YEAR(CalendarDate), MONTH(CalendarDate);
希望有所帮助。