Я бы использовал три параметра:
- FromDate с подсказкой «From:», тип DateTime.
- ToDate с подсказкой «to:» Тип DateTime.
- TimeRange с подсказкой «Times:» Тип Int с тремя жестко закодированными параметрами:
Возможное значение для TimeRange:
Value Label
1 0 - 8
2 8 - 16
3 16 - 0
Обратите внимание, что для меток можно установить любое значениепомогите своим пользователям: «Ранний сдвиг (полночь - 8 утра)»
Затем в руке SQL укажите параметр TimeRange в виде целого числа и преобразуйте его в два параметра для своего SQL.
DECLARE @StartHour INT
DECLARE @EndHour INT
SET @StartHour = CASE @TimeRange WHEN 1 THEN 0
WHEN 2 THEN 8
WHEN 3 THEN 16
END
SET @EndHour = CASE @TimeRange WHEN 1 THEN 8
WHEN 2 THEN 16
WHEN 3 THEN 24
END
SELECT
*
FROM
LogEntries
WHERE
LogEntries.TimeOfEntry >= @FromDate
AND LogEntries.TimeOfEntry < @ToDate
AND DATEPART( hh , LogEntries.TimeOfEntry ) >= @StartHour
AND DATEPART( hh , LogEntries.TimeOfEntry ) < @EndHour
(Не используйте МЕЖДУ, если вы используете мой точный код, он не будет обрабатывать EndHour надлежащим образом.)