我有一个表,其中有两列 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')
因此,我想检查该表所有行中的 StartTime 和 EndTime 是否涵盖了该表的 Minimum StartTime 和 Maximum EndTime 之间的整个时间段。因此,从这些行中,很明显这是真的。但是,对于以下一组行,由于它们之间的时间间隔,它不会是真的。所以我只想要 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')
我已经设法完成了所有其他任务,这是他们的最终结果。这是最后的任务,我完全不知道该怎么做。任何帮助,将不胜感激。