I would like to select 1 if current date falls between 2 dates through Oracle SQL.

I wrote an SQL after reading through other questions.

But it returned only null. sysdate is the current date that is 01/05/2014 in date format DD/MM/YYYY.

The SQL I wrote is:

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'); 

and

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'); 
4

3 Answers

You don't need to apply to_date() to sysdate. It is already there:

select 1 from dual WHERE sysdate BETWEEN TO_DATE('28/02/2014', 'DD/MM/YYYY') AND TO_DATE('20/06/2014', 'DD/MM/YYYY'); 

If you are concerned about the time component on the date, then use 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'); 
4
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 
2

TSQL: Dates- need to look for gaps in dates between Two Date

select distinct e1.enddate, e3.startdate, DATEDIFF(DAY,e1.enddate,e3.startdate)-1 as [Datediff] from #temp e1 join #temp e3 on e1.enddate < e3.startdate /* Finds the next start Time */ and e3.startdate = (select min(startdate) from #temp e5 where e5.startdate > e1.enddate) and not exists (select * /* Eliminates e1 rows if it is overlapped */ from #temp e5 where e5.startdate < e1.enddate and e5.enddate > e1.enddate); 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy