T-SQL从两个日期生成时间间隔
我希望生成这样的间隔:T-SQL从两个日期生成时间间隔,sql,tsql,Sql,Tsql,我希望生成这样的间隔: - ID | START_INTERVAL - 1 | 12:00 - 2 | 12:30 - 3 | 13:00 - 4 | 13:30 - 5 | 16:00 - 6 | 16:30 - 7 | 17:00 - 8 | 17:30 由此: - ID | START | STOP | INTERVAL - 1 | 2018-05-03 12:00:00 | 2018-05-03 14:00:00 | 30 - 2 | 2018-05-03 16:
- ID | START_INTERVAL
- 1 | 12:00
- 2 | 12:30
- 3 | 13:00
- 4 | 13:30
- 5 | 16:00
- 6 | 16:30
- 7 | 17:00
- 8 | 17:30
由此:
- ID | START | STOP | INTERVAL
- 1 | 2018-05-03 12:00:00 | 2018-05-03 14:00:00 | 30
- 2 | 2018-05-03 16:00:00 | 2018-05-03 18:00:00 | 30
可以从t-sql生成,或者我需要使用PHP?所以,您需要某种递归cte
您从哪里获得2018-05-03?如果它会传到第二天呢?除了30之外,还有其他时间间隔吗?可能重复为什么需要在T-SQL中执行此操作,而不是在服务器端或客户端?因为这当然更多的是算法,而不是数据库。
with cte as (
select id, start, stop, interval from table t
union all
select id, dateadd(MINUTE, interval, start) start, stop, interval
from cte c
where start < stop
)
select id, start as start_interval from cte c
order by 1