Проверьте, существует ли текущая дата между двумя датами Oracle SQL
Я хотел бы выбрать 1
, если текущая дата находится между двумя датами через oracle sql.
Я написал sql после прочтения других вопросов.
qaru.site/info/120716/...
qaru.site/info/141701/...
но он возвращает только null. sysdate - текущая дата 01/05/2014
в формате даты DD/MM/YYYY
.
Я написал следующие sqls:
select 1 from dual
WHERE to_date(sysdate,'DD/MM/YYYY')
BETWEEN TO_DATE('28/02/2014', 'DD/MM/YYYY')
AND TO_DATE('20/06/2014', 'DD/MM/YYYY');
и
select 1 from dual
WHERE to_date(sysdate,'DD/MM/YYYY') >= TO_DATE('28/02/2014', 'DD/MM/YYYY')
AND to_date(sysdate,'DD/MM/YYYY') < TO_DATE('20/06/2014', 'DD/MM/YYYY');
Заранее благодарим за помощь.
Ответы
Ответ 1
Вам не нужно применять to_date()
к sysdate
. Он уже существует:
select 1
from dual
WHERE sysdate BETWEEN TO_DATE('28/02/2014', 'DD/MM/YYYY') AND TO_DATE('20/06/2014', 'DD/MM/YYYY');
Если вас беспокоит компонент времени в дате, используйте trunc()
:
select 1
from dual
WHERE trunc(sysdate) BETWEEN TO_DATE('28/02/2014', 'DD/MM/YYYY') AND
TO_DATE('20/06/2014', 'DD/MM/YYYY');
Ответ 2
SELECT to_char(emp_login_date,'DD-MON-YYYY HH24:MI:SS'),A.*
FROM emp_log A
WHERE emp_login_date BETWEEN to_date(to_char('21-MAY-2015 11:50:14'),'DD-MON-YYYY HH24:MI:SS')
AND
to_date(to_char('22-MAY-2015 17:56:52'),'DD-MON-YYYY HH24:MI:SS')
ORDER BY emp_login_date