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
------解决方案--------------------在oracle里面还真没用过isnull函数
建议试试nvl函数!