比较oracle中每个月的日期

时间:2017-09-15 14:56:11

标签: oracle

我在比较日期时遇到了问题。我想将我的表上的end_time列与一些平均算术值进行比较,对于许多行。

    when  PPLP_NAME='OCS_PPL_IMP_OFFER_STATE' then
    CASE WHEN   ( to_char(END_TIME,  'DD/MM/YYYY HH24:MI:SS')<= '011100' )
    THEN 100 ELSE 0 END
END
AS STATUS,

例如,我想比较上述PPLP_NAME的end_time在上午11点比较低于或等于每月01。

以下查询未执行请求。

你能帮帮我吗?

感谢lto。

1 个答案:

答案 0 :(得分:1)

不要使用字符串比较来比较日期 - 只需比较日期:

  

我想比较上述PPLP_NAME的end_time在每个月的上午11点低于或等于01.

然后你需要查看日期是否小于或等于月份的TRUNC日期,加上11个小时:

WHEN PPLP_NAME='OCS_PPL_IMP_OFFER_STATE' then
  CASE
    WHEN END_TIME <= TRUNC( END_TIME, 'MM' ) + INTERVAL '11' HOUR
    THEN 100
    ELSE 0
  END
END AS STATUS,