查询日期问题

kaymo 2005-11-14 07:00:16
select xxx from CmGeneral as cg where cg.effectDate <= '"+date+"' and cg.expireDate >='"date"'

effectDate和expireDate 在oracle中都是Date类型,我传入的参数也是java.util.Date()类型.
现在的问题是:只能取出来date大于effectDate,小于expireDate的所有数据,而如果数据库中effectDate为null,expireDate条件成立的记录就取不出来,怎么取这些数据?

是否要用decode函数,怎么用?谢谢了.
...全文
151 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
waterfirer 2005-11-15
  • 打赏
  • 举报
回复
如果p_date是字符型,把cg.effectdate转换一下,to_char(cg.effectdate,'p_date的格式')
时间类型和字符串类型在格式相同的时候是可以比较的,但如果用nvl那就要类型一致了
waterfirer 2005-11-15
  • 打赏
  • 举报
回复
你的p_date是什么类型?日期类型我试过,不会报错
kaymo 2005-11-15
  • 打赏
  • 举报
回复
KingSunSha(弱水三千) ( ) is ok, thank u
waterfirer(水清) ( ) 会报错,期望是数值型而得到的是非数值型,是不是nvl只能处理数值形的东西??????????????
waterfirer 2005-11-15
  • 打赏
  • 举报
回复
SELECT xxx
FROM cmgeneral cg
WHERE nvl(cg.effectdate,p_date) <= p_date AND nvl(cg.expiredate,p_date) >= p_date;
KingSunSha 2005-11-15
  • 打赏
  • 举报
回复
SELECT xxx
FROM cmgeneral cg
WHERE (cg.effectdate <= p_date OR cg.effectdate IS NULL)
AND cg.expiredate >= p_date;
sungangsg 2005-11-14
  • 打赏
  • 举报
回复
要用的,空的字段不能比大小的,数字类型也会有相同问题的

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧