@Joker456

Как вывести записи во временной зоне с вечера до утра следующего дня?

Всем доброй ночи, голову сломал никак не получается составить sql запрос работающий с типом smalldata т.е. 00:00:00 - 23:59:59.
Необходимо вывести записи в диапазоне от 17:31 до 07:29 (следующего дня)
Столбцы таблицы: ВремяОт, ВремяДо ...

SELECT ID, Название, ВремяОт, ВремяДо FROM Table WHERE ('17:35:00' BETWEEN ВремяОт and ВремяДо)
  • Вопрос задан
  • 241 просмотр
Пригласить эксперта
Ответы на вопрос 2
denman1985
@denman1985
SQL, Oracle Forms/Reports dbd
Я как-то слабо понял как у тебя там все хранится и что надо выводить.
Если в таблице данные могут хранится в виде:
ВремяОт, ВремяДо
1. 17:31:00, 07:29:00
2. 20:34:00, 04:40:00
3. 23:00:00, 07:45:00
4. 12:00:00, 15:00:00
5. 18:00:00, 23:00:00
, и записи типа 1, 2, 5й строки надо вывести:

SELECT ID, Название, ВремяОт, ВремяДо 
FROM Table 
WHERE (ВремяОт > ВремяДо and ВремяОт >= '17:31:00' and ВремяДо <= '07:29:00') /* для обработки 1 и 2 строки */
or (ВремяОт < ВремяДо and (( ВремяОт >= '17:31:00' and ВремяДо <= '23:59:59'  ) or ( ВремяОт >= '00:00:00' and ВремяДо <= '07:29:00'  )) /* для обработки 5й строки */
Ответ написан
Комментировать
@Joker456 Автор вопроса
Идеально подходит под все случаи.
SELECT ID, Название, ВремяОт, ВремяДо 
FROM Table
WHERE (ВремяОт > ВремяДо or ВремяОт > '21:30:00' and ВремяДо < '21:30:00')
or '21:30:00' BETWEEN ВремяОт and ВремяДо
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы