设my_date_col为DATE类型,my_num_col为NUMBER类型。基于两个日期之间的信息差异是一个数字,这是怎么可能的?
nvl(my_num_col,sysdate) //syntax error "ORA-00932: inconsistent datatypes: expected NUMBER got DATE"
nvl(sysdate-my_date_col,sysdate) // works fine发布于 2017-09-25 11:51:57
在Oracle中不能将日期转换为数字类型。在Oracle docs给出的隐式数据类型转换矩阵中,您可以清楚地看到日期和数字不能相互转换。在nvl docs上也提到了
参数expr1和expr2可以具有任何数据类型。
参数可以是任意数据类型。如果它们的数据类型不同,则Oracle数据库会隐式地将其中一个转换为另一个。如果它们不能隐式转换,数据库将返回错误。
这就是为什么在第一种情况下从数字转换为日期时出现错误,而在第二种情况下从一个日期转换为另一个日期时出现错误的原因。
https://stackoverflow.com/questions/46391043
复制相似问题