Как фильтровать временные интервалы в SQL server 2008
я должен найти точный идентификатор столбца, где мое текущее время лежит между временными интервалами в столбце временного интервала.
моя структура таблицы такова:
id timeslot 1 12:00 AM To 02:00 AM 2 02:00 AM To 04:00 AM 3 04:00 AM To 06:00 AM 4 06:00 AM To 08:00 AM 5 08:00 AM To 10:00 AM 6 10:00 AM To 12:00 PM 7 12:00 PM To 02:00 PM 8 02:00 PM To 04:00 PM 9 04:00 PM To 06:00 PM 10 06:00 PM To 08:00 PM 11 08:00 PM To 10:00 PM 12 10:00 PM To 12:00 AM
например: "2:58 вечера" лежит между
02:00 PM To 04:00 PMИтак, id - это "8"
мне нужно это удостоверение
Что я уже пробовал:
SELECT [id],[CollectionTimeSlot] FROM tbl_CollectionTimeSlot WHERE '2:40 PM' BETWEEN convert(nvarchar(20), SUBSTRING([CollectionTimeSlot] ,0, CHARINDEX('To', [CollectionTimeSlot]) ),108) AND convert(nvarchar(20),SUBSTRING([CollectionTimeSlot] , CHARINDEX('To', [CollectionTimeSlot])+3,LEN([CollectionTimeSlot]))) ALSO TRIED ANOTHER ONE : SELECT [id],[CollectionTimeSlot] FROM tbl_CollectionTimeSlot WHERE '04:05 AM'>= convert(nvarchar(20), SUBSTRING([CollectionTimeSlot] ,0, CHARINDEX('To', [CollectionTimeSlot]) ),110) AND '04:05 AM'<= convert(nvarchar(20),SUBSTRING([CollectionTimeSlot] , CHARINDEX('To', [CollectionTimeSlot])+3,LEN([CollectionTimeSlot])))
КОТОРЫЕ ДАЮТ МНЕ РЕЗУЛЬТАТ КАК:
идентификатор CollectionTimeSlot
1 с 12: 00 до 02: 00
7 12: 00 вечера до 02: 00 вечера
МНЕ НУЖНО ТОЧНОЕ УДОСТОВЕРЕНИЕ ЛИЧНОСТИ