запрос по дням в PL / SQL (оракул) - PullRequest
0 голосов
/ 04 августа 2011

Я запрашиваю из базы данных:

select * from database where id = 12345

и я получаю пару дней, когда она равна 3/4/2010 9:16:59

но если я добавлю и дата = to_date ('03 / 04/2010 ',' DD / MM / YYYY ')

дает мне

select * from database where id = 12345
and date = to_date('03/04/2010','DD/MM/YYYY') 

Я возвращаюсь с совершенно ничем.

Есть указатели? Кстати, я знаю, что там есть время, но я не знаю, как сравнивать только исходя из дня !!!

Ответы [ 2 ]

3 голосов
/ 04 августа 2011

Это потому, что при создании даты вы неявно устанавливаете время на 0:00:00, а так как 0:00:00 не равно 9:16:59, вы не получите возвращенную дату.

Чтобы указать Oracle игнорировать часть времени, просто сделайте следующее:

WHERE id = 12345
  AND trunc(date) = to_date('03/04/2010', 'DD/MM/YYYY')
1 голос
/ 04 августа 2011
 WHERE id = 12345
   AND date >= TO_DATE('03/04/2010', 'DD/MM/YYYY')
   AND date <  TO_DATE('03/04/2010', 'DD/MM/YYYY') + INTERVAL '1' DAY

http://use -the-index-luke.com / sql / where-clause / запутывание / даты

...