Разделение часов между несколькими днямиРазделительные часы между датами в зависимости от диапазона дат
У меня есть данные как это.
StartDate EndDate
2015-10-05 20:00:00.000 2015-10-06 12:00:00.000
Мне нужно эти данные должны быть разделены по дате, как
2015-10-05 240 (4 hours)
2015-10-06 720 (12 hours)
я могу получить первый раскол даты начала, как этот
select (StartDate as date) as StartDate,
DATEDIFF(minute, StartDate, dateadd(day, 1, Cast(StartDate as date))) as diff
from t
, который дает мне
2015-10-05 240
И получить данные даты окончания, например
select
Cast(EndDate as date) as StartDate,
DATEDIFF(minute, Cast(EndDate as date), EndDate) as diff
from t
2015-10-06 720
Но я не уверен, как это сделать в одном запросе. Кроме того, время дифференциалов Betweens начало и конец может быть больше, чем один день разница как этот
StartDate EndDate
2015-10-05 20:00:00.000 2015-10-08 12:00:00.000
, для которого мне нужно
2015-10-05 240
2015-10-06 1440
2015-10-07 1440
2015-10-06 720
Спасибо за глядя
Это, кажется, SQL Server, но какая версия? – Shnugo
Свой 2012. Обновленный тег. Благодарю. – user3606175