這個調用 -Oracle日期四捨五入
SELECT ((TO_DATE ('06/06/2009 16:00:00', 'DD/MM/YYYY HH24:MI:SS') - TO_DATE ('06/06/2009 14:25:00', 'DD/MM/YYYY HH24:MI:SS')) * 1440.000) from dual
可生產95的結果 - 這是你從計算的期望。
這個調用 -
SELECT trunc((TO_DATE ('06/06/2009 16:00:00', 'DD/MM/YYYY HH24:MI:SS') - TO_DATE ('06/06/2009 14:25:00', 'DD/MM/YYYY HH24:MI:SS')) * 1440.000) from dual
產生的94
結果的修復建議是 - SELECT trunc((TO_DATE ('06/06/2009 16:00:00', 'DD/MM/YYYY HH24:MI:SS') - TO_DATE ('06/06/2009 14:25:00', 'DD/MM/YYYY HH24:MI:SS')) * 1440.000+.00001) from dual
該解決方案似乎是錯誤的我 - 任何人都可以提出一個更好的選擇?實際的要求是計算兩個日期之間的整個分鐘差異。
您可以告訴TRUNC或ROUND達到一定的小數位數。五個可能足以應付四捨五入的錯誤。 select trunc(94.999999999999999999999,5)from dual; – 2009-05-27 06:52:37
哎呦,我的意思是TRUNC和ROUND的組合,如 select trunc(round(94.99999999999999,5),2)from dual; – 2009-05-27 09:36:06