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函数,怎么用?谢谢了.
现在的问题是:只能取出来date大于effectDate,小于expireDate的所有数据,而如果数据库中effectDate为null,expireDate条件成立的记录就取不出来,怎么取这些数据?是否要用decode函数,怎么用?谢谢了.
FROM cmgeneral cg
WHERE (cg.effectdate <= p_date OR cg.effectdate IS NULL)
AND cg.expiredate >= p_date;
FROM cmgeneral cg
WHERE nvl(cg.effectdate,p_date) <= p_date AND nvl(cg.expiredate,p_date) >= p_date;
waterfirer(水清) ( ) 会报错,期望是数值型而得到的是非数值型,是不是nvl只能处理数值形的东西??????????????
时间类型和字符串类型在格式相同的时候是可以比较的,但如果用nvl那就要类型一致了