我有一個表中有兩列StartTime和EndTime。值填充它:如何檢查一組行是否覆蓋整個時間範圍
declare @tbl Table(
colA VARCHAR(50),
colS VARCHAR(50),
DATES DATE,
STARTTIME TIME,
ENDTIME TIME,
ID BIGINT NOT NULL IDENTITY(1,1)
)
INSERT INTO @tbl
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'12:45'),convert(TIME,'13:30')
UNION ALL
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'13:15'),convert(TIME,'13:45')
UNION ALL
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'13:30'),convert(TIME,'16:50')
UNION ALL
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'13:15'),convert(TIME,'13:50')
因此,我要檢查是否開始時間和結束時間在所有行的該表涵蓋最小開始時間和該表的最大結束時間之間的整個時間段。 因此,從這些行,很明顯,這是真的。但是,對於下面的一組行,由於它們之間的時間差異,它不會是真的。所以我只想要True或False。
INSERT INTO @tbl
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'08:45'),convert(TIME,'09:15')
UNION ALL
SELECT 'A','S',convert(date,'2015-09-21'),convert(TIME,'11:10'),convert(TIME,'11:25')
我已經設法完成所有其他任務,這是他們的最終結果。這是最後的任務,我完全不知道該怎麼做。任何幫助,將不勝感激。
[由伊茨克奔甘包裝間隔 (http://blogs.solidq.com/en/sqlserver/packing-intervals/) –