1

在我想要获取 is_my_day < 当前日期的固定时间(即 0600 小时)的地方。语法是什么?这是当前格式,但我想为我的自动报告指定一个固定时间。我正在使用 Oracle 10。

WHERE
TO_CHAR(MOPACTIVITY.MOPEND, 'yyyy-mm-dd hh24:mi') < TO_CHAR(TRUNC(CURRENT_DATE - 8/24,'hh24'), 'yyyy-mm-dd hh24:mi')
4

2 回答 2

4

做这件事有很多种方法:

选项一,您直接比较 DATE 值

WHERE
   MOPACTIVITY.MOPEND < 
                        trunc(SYSDATE, 'DD') + INTERVAL '06:00' HOUR TO MINUTE

SYSDATE- 当前日期,当前时间

TRUNC(SYSDATE, 'DD')- 当前日期,00:00 时

'TRUNC(SYSDATE, 'DD') + INTERVAL '06:00' HOUR TO MINUTE' - 当前日期,06:00 小时


选项二:将日期值转换为字符串并比较字符串

WHERE
 TO_CHAR(MOPACTIVITY.MOPEND, 'yyyymmddhh24mi') < 
                                          to_char(SYSDATE, 'yyyymmdd') || '0600' 

to_char(SYSDATE, 'yyyymmdd')-- 返回 20130726

于 2013-07-26T14:49:34.403 回答
0

这看起来有点难看IMO,但这是我现在唯一能想到的。

WHERE TO_CHAR(MOPACTIVITY.MOPEND, 'yyyy-mm-dd hh24:mi')
    < TO_CHAR(TRUNC(TO_DATE(TRUNC(CURRENT_DATE)) + 6/24, 'hh24'), 'yyyy-mm-dd hh24:mi')
于 2013-07-26T14:49:44.003 回答