Параметр время / дата между в службах отчетности - PullRequest
0 голосов
/ 09 ноября 2011

Мне нужно определить 2 параметра в службах отчетов

  1. для выбора даты между 2 датами (в идеале 2 календаря)
  2. для выбора времени; У меня есть 3 необходимых диапазона (08: 00: 00-15: 59: 59, 16: 00: 00-23: 59: 59, 00: 00: 00-07: 59: 59) В идеале 3 кнопки.

Есть идеи?

1 Ответ

1 голос
/ 09 ноября 2011

Я бы использовал три параметра:

  1. FromDate с подсказкой «From:», тип DateTime.
  2. ToDate с подсказкой «to:» Тип DateTime.
  3. 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 надлежащим образом.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...