Попробуйте:
SELECT shift_ID
FROM time_shift
WHERE
DATEDIFF(hour, shift_From, shift_To) = 2 -- your input
Подробнее о DATEDIFF на MSDN
Первый аргумент - это часть времени, которую вы указываете для DATETIFF (часы, минуты, секунды).
Если ваш ввод строго похож на 02:00:00
, вам нужно проанализировать его, чтобы определить, что указать в качестве первого аргумента.
<ч />
Чтобы определить, принадлежит ли указанная дата двум другим, используйте:
SELECT shift_ID
FROM time_shift
WHERE
CAST(shift_From AS TIME) < CAST(@input AS TIME)
AND
CAST(@input AS TIME) < CAST(shift_To AS TIME)
-- you can specify operators inclusiveness, i.e. <= >= etc
-- or
CAST(@input AS TIME) BETWEEN (CAST(shift_From AS TIME), CAST(shift_To AS TIME))
Подробнее о ВРЕМЯ на MSDN