Vérifier si la date courante se situe entre deux dates Oracle SQL
je voudrais sélectionner 1
si la date actuelle tombe entre 2 dates via Oracle SQL.
j'ai écrit un SQL après avoir lu d'autres questions.
mais il est retourné seulement null. sysdate
est la date courante qui est 01/05/2014
dans le format de date DD/MM/YYYY
.
le SQL que j'ai écrit est:
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');
et
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');
22
demandé sur
ZygD
2014-05-01 01:51:12
3 réponses
Vous n'avez pas besoin d'appliquer to_date()
à sysdate
. Il est déjà là:
select 1
from dual
WHERE sysdate BETWEEN TO_DATE('28/02/2014', 'DD/MM/YYYY') AND TO_DATE('20/06/2014', 'DD/MM/YYYY');
si vous êtes préoccupé par la composante temporelle à la date, utilisez 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');
44
répondu
Gordon Linoff
2014-04-30 22:00:39
TSQL: les Dates - besoin de chercher des lacunes dans les dates entre Deux dates
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);
0
répondu
user6341745
2018-08-21 15:55:39
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
-1
répondu
arun
2015-05-23 15:31:25