【发布时间】:2019-10-10 02:19:59
【问题描述】:
我希望创建一个与特定日历日期的事件相对应的循环日期计算器。每个事件都有自己的规则。 前任。对于 EVENT 规则是“每月星期二发生,开始日期为 2019 年 9 月 17 日星期二。我使用时间维度表,每个日期都填充到 2025 年。使用我在 WHERE 子句中使用的这些日期
WHERE dayname = 'tuesday' and ( DATEDIFF(DAY, '2019-09-17', Calendar_Date) % 28 ) = 0 to get monthly tuesdays.
但是当一个月有两个 5 星期二时,我遇到了问题。 2020 年 3 月 3 日和 2020 年 3 月 31 日。需要将日期填充为 2020 年 4 月 7 日而不是 2020 年 3 月 31 日。
谁能帮忙解决?
【问题讨论】:
-
你为什么要聪明地使用日期算术和模数?您显然有非常清晰的逻辑来查找所有星期二 - 您只需要找到每个月的 第一个 星期二。这是一个提示 - 您如何找到特定月份的值(即,calendar_date >= '20190901' 和 calendar_date
标签: sql sql-server date