Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
Есть некая таблица, в ней есть столбец с датой (DD-MM-YYYY HH24:MI:SS), нужно вывести те строки у которых дата, например: с 10.10.2011 по 11.10.2011 и не входит в промежуток времени 09:00:00 - 18:00:00.
11 окт 11, 12:46    [11419018]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
semenar
Member

Откуда: Днепропетровск
Сообщений: 3308
Блог
between and not between с соотв. маской to_date.
11 окт 11, 12:50    [11419059]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
Elic
Member

Откуда:
Сообщений: 29991
and d not between trunc(d) + interval '9' hour and trunc(d) + interval '18' hour
11 окт 11, 12:50    [11419066]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
с интервалом работает, но не работает если задать интервал более одного дня(плохой пример дал я)...
11 окт 11, 14:43    [11420306]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
Elic
Member

Откуда:
Сообщений: 29991
its_me
с интервалом работает, но не работает если задать интервал более одного дня(плохой пример дал я)...
Попробуй включить мозг и подумай, что значит "and" перед условием.
11 окт 11, 14:49    [11420370]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
Elic
and d not between trunc(d) + interval '9' hour and trunc(d) + interval '18' hour


а под trunc(d) что подразумевается, может я чего-то не то подставил?
11 окт 11, 14:58    [11420440]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
its_me
Elic
and d not between trunc(d) + interval '9' hour and trunc(d) + interval '18' hour


а под trunc(d) что подразумевается, может я чего-то не то подставил?

заканчивайте уже потешать публику и попробуйте литературку почитать
11 окт 11, 15:04    [11420495]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
ладно буду методом тыка.....времени нет читать...
11 окт 11, 15:20    [11420677]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
ALocky
Member

Откуда: Понаехал из Подмосковья
Сообщений: 747
its_me
ладно буду методом тыка.....времени нет читать...

Зачет
11 окт 11, 15:37    [11420889]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6749
its_me,

Вера в свои силы или неверие в свои способности?
11 окт 11, 15:50    [11421019]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
нет, просто я знаю что мне предложили, но из-за того что я одновременно решаю организационные вопросы по работе, мне не переключится на скрипт и не включить логику чтобы собрать скрипт. Так как мне помогли с "частью вопроса", то я вот до сих пор соображаю как доделать...примерно так))
11 окт 11, 16:00    [11421151]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
всеравно не могу понять как для большого промежутка времени сделать выборку чтобы туда не водили ежедневные часовые промежутки...
11 окт 11, 16:09    [11421282]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
Jack123
Member

Откуда: Таган-Йорк-Москва
Сообщений: 85
its_me,

настоящие люди дела так и поступают! Сначала делают, потом думают.:)

1) У тебя столбец всего один, поэтому вопрос, что подставлять в выражение Elic'a находится в твоём вопросе.
2) Поставь перед and поставь between с твоими датами для твоего столбаца.
11 окт 11, 16:28    [11421473]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
'select '+
'rg.fullname, '+
'(select count(*) from objects where insertby=rg.fullname and objtypes_id <>6 '+
'and insertdate between to_date('''+StartD+''',''DD.MM.YYYY'') and to_date('''+EndD+''',''DD.MM.YYYY'') '+
'and insertdate not between trunc(to_date('''+StartD+''',''DD.MM.YYYY''),''D'')+ interval ''9'' hour and trunc(to_date('''+EndD+''',''DD.MM.YYYY''),''D'')+ interval ''17'' hour group by insertby


на кавычки не обращайте внимания, это я пишу для обработчика кнопки. Тут пример моей интерпретации вашей помощи. Он не работает.
11 окт 11, 16:34    [11421549]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
Jack123
Member

Откуда: Таган-Йорк-Москва
Сообщений: 85
its_me,

У всё меня работает!:)

select insertdate
  from (select sysdate + 0.1 * level insertdate
          from dual t
        connect by level < 50) l
 where l.insertdate between date '2011-10-11' and date
 '2011-10-18' and
       l.insertdate not between trunc(l.insertdate) + interval '9'
 hour
   and trunc(l.insertdate) + interval '18' hour
11 окт 11, 16:46    [11421653]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
и у меня заработало как только я мозг включил(другие вопросы отбросил по работе)! Так что прошу прощения, извините и т.д., вообщем помогли.

П.С.: столько времени убил на эту проблему, сам себя ругаю.
11 окт 11, 16:49    [11421684]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
а еще вопрос, а как по субботам и воскресеньям не учитывать это время?
11 окт 11, 16:52    [11421709]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
Jack123
Member

Откуда: Таган-Йорк-Москва
Сообщений: 85
to_char(sysdate,'day')
11 окт 11, 17:05    [11421833]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
Человек и Кошка
Member

Откуда: настоящему индейцу завсегда везде ништяк (с)
Сообщений: 830
its_me
а еще вопрос, а как по субботам и воскресеньям не учитывать это время?

... ( l.insertdate not between ...
   or to_char(l.insertdate,'fmday','nls_date_language=russian') in ('суббота','воскресенье')
    )
11 окт 11, 17:09    [11421870]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
SQLap
Member [заблокирован]

Откуда:
Сообщений: 34063
its_me
а еще вопрос, а как по субботам и воскресеньям не учитывать это время?

проверяй субботы-воскресенья to_char'ом
11 окт 11, 17:10    [11421882]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
Jack123
Member

Откуда: Таган-Йорк-Москва
Сообщений: 85
Человек и Кошка,

да, твой вариант корректнее.:)
11 окт 11, 17:12    [11421895]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
до выходных пока не дошел, столкнулся с проблемой: в пустой таблице при такой выборке промежутка времени выдает ORA-30081, остальные где работает они не пустые..???
11 окт 11, 17:43    [11422185]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
не не в пустоте дело...
11 окт 11, 17:45    [11422200]     Ответить | Цитировать Сообщить модератору
 Re: Промежуток времени  [new]
its_me
Member

Откуда:
Сообщений: 230
все решил..
11 окт 11, 17:49    [11422264]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить