Получить данные с условием между

У меня есть запрос

select * from TABLE_NAME 
where date 
between to_date('26/01/2016', 'dd/mm/yyyy hh24:mi') 
and     to_date('26/01/2016', 'dd/mm/yyyy hh24:mi');

26.01.2016, 23:59:32

выше одного - дата, которую нужно получить при выполнении запроса

Но когда я выполнял тот же запрос, он не смог отфильтровать. Не знаю почему?

Я не знаю, где я делаю неправильно.

1 ответ

между to_date('26/01/2016', 'dd/mm/yyyy hh24:mi') и to_date ('26 / 01/2016', 'dd / mm / yyyy hh24: mi')

У вас нет времени to_date('26/01/2016', 'dd/mm/yyyy hh24:mi') совсем. У вас есть только часть даты, поэтому фильтр игнорирует часть времени и возвращает все строки для этой даты. Часть времени в вашем запросе:

SQL> alter session set nls_date_format='DD/MM/YYYY HH24:MI:SS';

Session altered.

SQL> SELECT to_date('26/01/2016', 'dd/mm/yyyy hh24:mi') FROM dual;

TO_DATE('26/01/2016
-------------------
26/01/2016 00:00:00

Для фильтрации строк с 01/26/2016 11:59:32 PM тебе нужно:

TO_DATE('01/26/2016 11:59:32 PM' ,'DD/MM/YYYY HH:MI:SS PM')
Другие вопросы по тегам