powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Сравнение времени в sql запросе
8 сообщений из 8, страница 1 из 1
Сравнение времени в sql запросе
    #36810198
JuliaBob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть запрос в репорте. Нужно вывести все строки из таблицы, где время попадает в заданный диапазон.
Сделала совсем простой репорт для тестирования. У меня в таблице хранится время в таком виде hh-mi (часы-минуты), причем тип varchar2. Значения от 00-00 до 12-00 с интервалом в 30 минут.
В отчете хочу вывести значения например, с 23-00 до 04-00.
Текст запроса:
___________________________________________________
select vremya, to_timestamp(vremya,'hh24 mi') as ddd
from vremya
where to_timestamp(vremya,'hh24 mi') between to_timestamp('23-00','hh24 mi') and to_timestamp('04-00,'hh24 mi')
___________________________________________________

Он не возвращает ничего! No data found говорит. А они там есть!

Причем если искать с 10-00 до 16-00, например, то всё работает правильно.

Что я делаю не так?(
...
Рейтинг: 0 / 0
Сравнение времени в sql запросе
    #36810333
Poyasnoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuliaBob,

Так ведь 4 утра раньше (т.е. меньше) чем 11 вечера
Наверное Ваша задача должна звучать как авторВ отчете хочу вывести значения например, с 23-00 до 04-00 следующего дня , но Ваши данные не содержат информации о дне
...
Рейтинг: 0 / 0
Сравнение времени в sql запросе
    #36810384
JuliaBob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Poyasnoy , точно точно. А я чувствую, что что-то не то, а что именно - понять не могу.

А это никак нельзя "обойти" запросом?

Пользователь выбирает из двух списков времени :"Время от" и "время до", а вывести нужно то, что находится в этом диапазоне...
...
Рейтинг: 0 / 0
Сравнение времени в sql запросе
    #36810443
Poyasnoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuliaBob,

Код: plaintext
1.
col BETWEEN least(:p1,:p2) AND greatest(:p1,:p2)
...
Рейтинг: 0 / 0
Сравнение времени в sql запросе
    #36810593
JuliaBob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Poyasnoy,
если сделать:
_________________________________________________________
vremya BETWEEN least(23-30,04-00) AND greatest(23-30,04-00)
_________________________________________________________
то он выводит с 4 утра до 23-30, а надо наоборот...с 23-30 до 04-00 утра.
При преобразовании varchar к timestamp он делает дату вида "первый день месяца+время, которое было в varchar". В этом то вся проблема...
...
Рейтинг: 0 / 0
Сравнение времени в sql запросе
    #36810899
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, это тема для основного форума Oracle .

JuliaBobПри преобразовании varchar к timestamp он делает дату вида "первый день месяца+время, которое было в varchar". В этом то вся проблема...

Нет. Вся проблема в том, что Вы не храните даты , но пытаетесь добиться от двух значений суточного времени сравнения, основанного на датах , - как уже заметил Poyasnoy. Вот Вы можете сказать, что было раньше: 04:00 или 16:00 - не зная, к какой дате относится каждое время? И Oracle DB не может.

Пересматривайте дизайн, передумывайте отчёт...

PS: Вот простой вывод получасов в отрезке времени.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
with param as 
  (select to_date('20.08.2010 21:00', 'dd.mm.yyyy hh24:mi') start_date
        , to_date('22.08.2010 10:00', 'dd.mm.yyyy hh24:mi') end_date
        ,  0 . 5  hour_div 
     from dual)
select start_date + (level -  1 ) * (hour_div /  24 )
  from param
 connect by level <= (end_date - start_date) / (hour_div /  24 ) +  1 
...
Рейтинг: 0 / 0
Сравнение времени в sql запросе
    #36811547
JuliaBob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С форумом ошиблась, ага. Сори, просто по привычку уже пишу в апекс...заработалась)
Похоже придется и в самом деле пересматривать отчет...эх, а идея была такой заманчивой.

У меня тут еще один вопросик назрел...тему что-то боюсь отдельную создавать, наверняка это просто делается. Вобщем, у меня есть отчет...обычный sql репорт. Я хочу сделать поле "код_таблицы" ссылкой (ColumnLink). Как в запросе обратиться к ссылке, по которой пользователь перешёл?

Такого типа:
where column= "выбранная ссылка"
...
Рейтинг: 0 / 0
Сравнение времени в sql запросе
    #36811549
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuliaBobУ меня тут еще один вопросик назрел...тему что-то боюсь отдельную создавать

Не бойтесь, создавайте.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Сравнение времени в sql запросе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]