.net执行oracle查询语句报错“指定的转换无效”解决方案

问题:

  .net执行oracle查询语句报错“指定的转换无效”,在PL/SQL中正常;

SELECT A.ID,SUM(TO_NUMBER(A.MODIFYTIME-A.UPLOADTIME)*24*60) AS NSUM FROM STUDIO A GROUP BY A.ID

原因:

  查询时计算两个时间间隔的小数位数太长导致.net无法处理,需要在计算时截取小数位;

解决方法:

  使用‘ROUND’截取小数位;

SELECT A.ID,SUM(TO_NUMBER(ROUND(A.MODIFYTIME-A.UPLOADTIME,5))*24*60) AS NSUM FROM STUDIO A GROUP BY A.ID

 

扩展:

  oracle时间间隔处理语句:

SELECT TO_CHAR(EXTRACT(DAY FROM NUMTODSINTERVAL(MODIFYTIME - UPLOADTIME,'DAY'))) || '',
       TO_CHAR(EXTRACT(HOUR FROM NUMTODSINTERVAL(MODIFYTIME - UPLOADTIME,'DAY'))) || '',
       TO_CHAR(EXTRACT(MINUTE FROM NUMTODSINTERVAL(MODIFYTIME - UPLOADTIME,'DAY'))) || '',
       TO_CHAR(EXTRACT(SECOND FROM NUMTODSINTERVAL(MODIFYTIME - UPLOADTIME,'DAY'))) || ''
FROM STUDIO

 

posted @ 2021-05-24 17:16  昨天忆  阅读(689)  评论(0编辑  收藏  举报