Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ДатаВремя 
:(
    Опции темы
Petro123
Дата 20.4.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Одно из полей таблицы ДатаВременное,

Нужно организовать выборку записей в которую бы попали скажем 
 все от 10 января до 20 января и временем с 10:00 до 12:00 (11 января 9:00 не подходит!)
...

where (table.printtime between to_date('20070110','YYYYMMDD') and to_date('20070121','YYYYMMDD'))
 and  
(table.printtime between to_date('1000',hh24mi') and to_date('1200','hh24mi'))

- Результат 0 записей. Не могу понять почему. Кто нибудь помогите пожалуйста разобраться!



PM MAIL   Вверх
LSD
Дата 20.4.2007, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Попробуй так:
Код
where 
      (table.printtime between to_date('200701101000','YYYYMMDDhh24mi') 
        and 
       to_date('200701211200','YYYYMMDDhh24mi'))



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Petro123
Дата 21.4.2007, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Вы меня не поняли, ваш запрос выберет линию времени между двумя датами!
Нужно сначала отрезать дату, затем уже отрезать время.
Например с 10 до 20 января время с 10 до 12 часов, остальное время не брать!

Добавлено через 8 минут и 21 секунду
Как вариант переведем время в минуты,
и
...
where (table.printtime between to_date('20070110','YYYYMMDD') and to_date('20070121','YYYYMMDD'))
 and  
(to_char(ch.printtime,'hh24')*60+to_char(ch.printtime,'mi') between 10*60+0 and 12*60+0))
...
Меня все же интересовало почему 
table.printtime between to_date('1000',hh24mi') and to_date('1200','hh24mi'))
не работало!

PM MAIL   Вверх
LSD
Дата 21.4.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(Petro123 @  21.4.2007,  08:05 Найти цитируемый пост)
Меня все же интересовало почему 
table.printtime between to_date('1000',hh24mi') and to_date('1200','hh24mi'))
не работало!

Потому что, такого типа данных как время в Oracle нет, есть только дата-время. Соответвенно когда ты пишешь to_date('1000',hh24mi'), то формируется полная дата, время будет то которое ты указал, а дата текущая. И сравниваться будут полные даты.
Сделай так:
Код
to_number(to_char(table.printtime, 'SSSSS')) between 36000 and 43200





--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.