日期差异无效的数字错误

时间:2016-02-26 07:39:50

标签: oracle

我希望计算两个日期的差异并将其舍入到4个小数。 但是以下查询会将错误视为无效数字。 有什么不对

SELECT ROUND((TO_DATE(to_char('26-02-2016 12:44:00','DD/MM/YY HH24:MI'),'DD/MM/YY HH24:MI') - TO_DATE(to_char('26/02/2016 12:38','DD/MM/YY HH24:MI'),'DD/MM/YY HH24:MI')), 4) 
from dual;

1 个答案:

答案 0 :(得分:0)

不要在字符串上调用to_char(就像你不应该在某个日期调用to_date一样)。只需调用to_date即可将字符串转换为日期。您的格式掩码也需要匹配字符串 - 您使用4位数年份,因此在格式掩码中使用YYYY,您要么从第一个字符串中删除秒数,要么在格式掩码中添加秒数。 / p>

SELECT ROUND( to_date( '26-02-2016 12:44','DD-MM-YYYY HH24:MI') -
                to_date( '26/02/2016 12:38','DD/MM/YYYY HH24:MI'),
              4 )
  FROM dual