Получить данные с условием между
У меня есть запрос
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')