我有簡單的計算,我從日期減去間隔用時:與格式甲骨文TO_DATE不顯示時間
select TO_DATE('2016-12-05 23:04:59', 'YYYY-MM-DD HH24:MI:SS') - to_dsinterval('00 0:05:00') from dual;
它工作正常,結果:2016年12月5日22點59分59秒
但它無法與時區正確工作,所以下一種方法解決了時區問題。我只是包裝用TO_DATE()一次
select TO_DATE(
TO_DATE('2016-12-05 23:04:59', 'YYYY-MM-DD HH24:MI:SS') - to_dsinterval('00 0:05:00')) from dual;
表達,但現在事實證明時間爲零。結果應該是:2016年12月5日22時59分五十九秒但實際:2016年12月5日00:00:00
如果我添加格式外TO_DATE就象這樣:
select to_date(TO_DATE('2016-12-05 23:04:59', 'YYYY-MM-DD HH24:MI:SS') - to_dsinterval('00 0:05:00'), 'YYYY-MM-DD HH24:MI:SS') from dual;
結果變得很奇怪:0005-12-16 00:00:00 我在做什麼錯了?
減法的結果已經是日期。你不需要另一個'to_date()',這不能解決時區問題。如果你想在時區上進行一些操作,請使用'時區時間戳' – Kacper