重复日期表

时间:2015-06-10 12:52:33

标签: sql date recurring

我有一张包含很多预定活动的桌子。我想创建一个包含此安装表中所有即将发生的事件的数据仓库表。我怎么能在下周这样做? 有些活动每5分钟,每小时,每小时,每天开始,等等。

示例表

Event_name, last_run, next_time, Intervallroundup5min

Job1, 2015-06-10 14:48:03.147, 2015-06-10 14:49:00.000 , 5

Job2, 2015-06-10 12:27:09.637, 2015-06-10 15:25:00.000, 180

1 个答案:

答案 0 :(得分:0)

如果您的RDBMS支持递归CTE,您可以这样做:

with futurecte as 
(
  select event_name,
  dateadd(mi,Intervallroundup5min,next_time) as NExtTime
  ,Intervallroundup5min
  from
  table1
  union all
  select
  event_name,
  dateadd(mi,Intervallroundup5min,nexttime)
  ,Intervallroundup5min
  from
  futurecte
  where
  dateadd(mi,Intervallroundup5min,nexttime) <= '2015-06-11'  --end date
  )
  select
  event_name,
  nexttime
  from
  futurecte

将结束日期修改为您想要的任何值。 SQL Fiddle