我是Oracle的新手,我遇到了一个问题。我的页面上有一个具有START_DATE和END_DATE的表单,我需要将这些值与DB中相应的StartDate和EndDate列进行比较。这些列是可以为空的,所以我出错了。有什么不同的方法来解决这个问题?使用ToDate并非易事,因为我目前正在使用一个过滤器类来构建我的查询,所以我正在寻找其他选择。
发布于 2011-08-02 03:02:06
这将取决于您使用哪种逻辑来处理日期。如果开始日期为null意味着“不适用”,并且end_date也是如此,那么您可以这样做:
WHERE date_I_care_about
BETWEEN nvl(start_date,to_date('19000101','YYYYMMDD'))
AND nvl(start_date,to_date('30000101','YYYYMMDD'))也就是说,当您没有值时,只需为start_date和end_date插入任意大小的值。
但这取决于您特定的逻辑,即上述方法是否合适。
https://stackoverflow.com/questions/6903001
复制相似问题