我有一個日期的值 - 08.06.16 19:56:20,473000000 orcle db。Oracle時間戳舍入
CR_DATE - TIMESTAMP(6)
我需要日期被截斷到前一小時的頂部並轉換爲時代格式。例如,如果日期如上所述那麼它應該四捨五入到08.06.16 19:00:00,然後轉換爲時代,這應該給我最後的o/p爲1465412400
我可以使用下面的查詢來更改以時代格式,但四捨五入到最近的小時不起作用。
ROUND((CAST(CR_DATE AS DATE) - DATE '1970-01-01') * 24 * 60 * 60, 0) AS creationDate
如果我使用
select CR_DATE,TRUNC(CREATION_DATE, 'HH24') AS creationDate
然後我得到的價值爲16年8月6日和HH:MM的詳細信息被截斷。
在DB上設置NLS_TIMESTAMP_FORMAT是DD.MM.RR HH24:MI:SSXFF
有人可以幫助我解決這個不改變NSL格式?
您說「四捨五入到最接近的小時」,但您的示例似乎表明您要截斷到前一小時的頂部。哪兩個是正確的。 'trunc(creation_date,'HH24')'將返回一個截斷爲小時的'date'。您的客戶可能不會顯示時間部分,但它仍然存在。 –
感謝您關注此問題。是截斷到前幾小時的頂部,實際上是到最近的小時。爲這個錯誤道歉。但是,如何隨着時間的推移獲得價值。我不想讓時間部分完全散發出去。 – RandomQuestions
「到實際到最近的小時」是什麼意思?這聽起來像我們回到舍入不截斷 –