Я бы подошёл к такой задаче следующим образом:
1. Создал временную таблицу с единственным полем - ДатаВремя.
2. Используя
один из многих вариантов заполнил бы эту таблицу нужным вам интервалом.
3. Использовал примерно следующий код:
Declare @dates table(eventdate datetime)
--population of table with required datetime intervals
X++:
SELECT CRMAF_event.new_name, CRMAF_event.new_startdate, CRMAF_event.new_enddate, CRMAF_event.new_tutoridname, tutor.be_flipchart, tutor.be_owncomputer,
tutor.be_ohp, tutor.be_preferredcomputer, venue.new_roomidname AS room, venue.new_venueidname AS venue, d.eventdate
FROM FilteredNew_Event AS CRMAF_event INNER JOIN
FilteredContact AS tutor ON CRMAF_event.new_tutorid = tutor.contactid INNER JOIN
FilteredNew_City AS city ON CRMAF_event.new_cityid = city.new_cityid INNER JOIN
FilteredNew_EventVenue AS venue ON CRMAF_event.new_eventid = venue.new_eventid Inner Join
@dates d On CRMAF_event.new_startdate <= d.eventdate and CRMAF_event.new_enddate >= d.eventdate
WHERE (city.new_country = 'Russia') AND (CRMAF_event.new_tutoridname <> 'ATC, Administrator') AND (CRMAF_event.new_name NOT LIKE '%(CANCELLED)')
ORDER BY CRMAF_event.new_startdate