Ras*_*iya 4 oracle datetime nvl
select nvl(trunc(null),trunc(sysdate)) from dual;
Run Code Online (Sandbox Code Playgroud)
执行上述查询时,我收到以下错误
ORA-00932: inconsistent datatypes: expected NUMBER got DATE
Run Code Online (Sandbox Code Playgroud)
看起来当我拿字符串或数字而不是trunc(sysdate)它运行正常.
从这里:
NVL的第一个参数是确定返回列的预期数据类型,trunc函数默认为NUMBER,因为它的参数为NULL.NVL的第二个参数需要匹配它没有的数据类型,因为它是一个日期.
SQL> select nvl(trunc(sysdate), sysdate) as mydate from dual;
MYDATE
-------------------
26/05/2006 00:00:00
SQL> select nvl(trunc(null), sysdate) as mydate from dual;
select nvl(trunc(null), sysdate) as mydate from dual
*
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected NUMBER got DATE
Run Code Online (Sandbox Code Playgroud)
或者你可以这样做:
SELECT NVL(TO_DATE(TRUNC(NULL)),SYSDATE) FROM dual;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11133 次 |
| 最近记录: |