日期:2014-05-17  浏览次数:20960 次

to_date以及isnull的问题
 select (isnull(NextExecuteTime,   BeginDate))+ 1 * CycValue from   DJ_LINE_CYCLE

这样的一条语句,运行报错。“无效数字”  NextExecuteTime和  BeginDate  这两个参数都是date类型的。按理说date类型的值+1就是日期加上一天。这应该没问题。但是经过isnull之后就会报这个错。难道isnull返回的不是这两个参数的类型?

求解。从网上查了写资料说isnull  如果check_expression1  不为空,那么久返回check_expression 的值包括返回类型。为空就返回BeginDate的值以及类型。如果这句话没问题。那么一个date类型+1也应该没问题啊(CycValue 只是个参数值,也是数字)


求大神解释下。
后面我加了to_date,尝试转换下类型的。结果“文字与格式字符不匹配”
 select to_date(isnull(NextExecuteTime,   BeginDate),'YYYY-MM-DD')+ 1 * CycValue from   DJ_LINE_CYCLE
isnull to_date

------解决方案--------------------
在oracle里面还真没用过isnull函数

建议试试nvl函数!