首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在` `nvl(sysdate-my_date_col,sysdate)`过程中,`DATE`是如何发生隐式转换`NUMBER`的

在` `nvl(sysdate-my_date_col,sysdate)`过程中,`DATE`是如何发生隐式转换`NUMBER`的
EN

Stack Overflow用户
提问于 2017-09-24 22:20:36
回答 1查看 16关注 0票数 1

my_date_colDATE类型,my_num_colNUMBER类型。基于两个日期之间的信息差异是一个数字,这是怎么可能的?

代码语言:javascript
复制
nvl(my_num_col,sysdate)  //syntax error "ORA-00932: inconsistent datatypes: expected NUMBER got DATE"  

nvl(sysdate-my_date_col,sysdate) // works fine
EN

回答 1

Stack Overflow用户

发布于 2017-09-25 11:51:57

在Oracle中不能将日期转换为数字类型。在Oracle docs给出的隐式数据类型转换矩阵中,您可以清楚地看到日期和数字不能相互转换。在nvl docs上也提到了

参数expr1和expr2可以具有任何数据类型。

参数可以是任意数据类型。如果它们的数据类型不同,则Oracle数据库会隐式地将其中一个转换为另一个。如果它们不能隐式转换,数据库将返回错误。

这就是为什么在第一种情况下从数字转换为日期时出现错误,而在第二种情况下从一个日期转换为另一个日期时出现错误的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46391043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档