我希望计算两个日期的差异并将其舍入到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;
答案 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