【发布时间】:2011-12-14 11:56:05
【问题描述】:
我正在尝试编写一个 sql 查询,该查询取决于用户选择的内容,每 x 周每 x 天重复一次。 因此,用户将选择他们希望作业在每 2 周的星期二重复 提供的值是
declare @StartDate datetime -- when the job first recurs
declare @recurrenceValue1 int -- amount of weeks
declare @recurrenceValue2 int -- day of week (mon-sun)
declare @NextOcurrance datetime -- when the job will recur
我知道如何设置周数:
SET @NextOccurance = (Convert(char(12),@StartDate + (@RecurrenceValue1),106))
但我不知道如何让它滚动到星期几,所以如果@startDate 是今天,它应该在星期二每两周重复一次,它会看到今天是星期三,所以会循环直到它知道今天是星期二,那将是 @NextRecurrance 日期。
提前致谢
【问题讨论】:
-
嗨,是的,我正在使用 sqlserver2008
-
您想要“星期三 + 2 周”之前的星期二,还是“星期三 + 2 周”之后的星期二?如果有人将第一个“重复”日期定为星期二,但星期几应该是星期三,这种情况会改变吗?您是否正在尝试为调度服务编写函数或存储数据(如果是,您的架构是什么,您可以更改它吗)?
-
@X-Zero 如果用户选择今天的开始日期,则作业将在今天运行,那么计划任务将运行上述过程。然后需要将 NextOccurance 日期设置为 2 周后的星期二
标签: sql sql-server-2008 datetime recurrence