在我想要获取 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')
做这件事有很多种方法:
选项一,您直接比较 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
这看起来有点难看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')