У меня есть таблица встреч с записями, имеющими два поля: start_date и end_date, как datetime. В таблице нет перекрытия периодов времени.Найти доступные открытия с помощью SQL
Учитывая определенный период (search_start и search_end), мне нужно сгенерировать список всех открытий между этими встречами (от и до) с использованием SQL.
Например: с учетом двух назначений в таблице:
15 сентября 2016 с 08:00 до 15 сентября, 2016 9:00
15 сентября 2016 10:00 до 15 сентября 2016 года 12 : 00
и заданные параметры поиска начать = 1 сентября 2016 00:00 и конец = 30 сентября 2016 23:59, результаты должны быть
1 сентября 2016 00:00 15 сентября 2016 08:00
15 сентября 2016 9:00 15 сентября 2016 10:00
15 сентября 2016 12:00 30 сентября 2016 23:59
Вот скрипт для создания таблицы выборки:
CREATE TABLE [dbo].[Table_1](
[from_date] [datetime] NOT NULL,
[to_date] [datetime] NULL,
CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED ([from_date] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
INSERT [dbo].[Table_1] ([from_date], [to_date]) VALUES (CAST(0x0000A6820083D600 AS DateTime), CAST(0x0000A682009450C0 AS DateTime))
INSERT [dbo].[Table_1] ([from_date], [to_date]) VALUES (CAST(0x0000A68200A4CB80 AS DateTime), CAST(0x0000A68200C5C100 AS DateTime))
Я использую MSSQL 2008 R2
Вот отличное место для начала. http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ Учитывая то, что вы опубликовали, нет никаких шансов, мы сможем помочь. –
Какая версия SQL? – SqlOnly
Вы просто хотите отобразить весь результат между двумя датами? – mfredy