我想说跟随,但用SYSDATE代替日期,但两者之间的时间是我想要调整的.语法是什么?
其中mydatefield之间SYSDATE+'0001'和SYSDATE+'2359'
...
WHERE TO_CHAR( MOPACTIVITY.MOPNOTIFICATIONSENDAT , 'yyyy-mm-dd hh24:mi' )
BETWEEN '2013-07-26 00:00:01' AND '2013-07-26 23:59:59'
;
Run Code Online (Sandbox Code Playgroud)
Oracle中的SYSDATE(或任何其他日期列)具有时间组件.因此,您需要将其剥离,然后添加小时/分钟/时间条件.
例如.可以说,当天上午10:00到下午3:00
date_column between (trunc(sysdate) + 10/24) and (trunc(sysdate) + 15/24)
Run Code Online (Sandbox Code Playgroud)
Oracle日期算法在日级别上运行.所以,+1会在第二天给你,1/24会给你一个小时,10/24会给你当天的10:00 AM.
SQL> alter session set nls_date_format = 'DD-Mon-YYYY HH:MI:SS AM';
Session altered.
1 select sysdate,
2 trunc(sysdate),
3 trunc(sysdate) + 10/24,
4 trunc(sysdate) + 15/24
5* from dual
SQL> /
SYSDATE 26-Jul-2013 06:26:07 PM
TRUNC(SYSDATE) 26-Jul-2013 12:00:00 AM
TRUNC(SYSDATE)+10/24 26-Jul-2013 10:00:00 AM
TRUNC(SYSDATE)+15/24 26-Jul-2013 03:00:00 PM
Run Code Online (Sandbox Code Playgroud)
对于您的问题,您似乎对当天和第二天感兴趣,因此您可以尝试在剥离时间组件后直接向日期添加+ 1.
date_column >= trunc(sysdate) and
date_column < trunc(sysdate)+1
Run Code Online (Sandbox Code Playgroud)