2017-08-16 97 views
0

我正在使用Oracle 12c版本。 我有一個整數數據類型的列,它表示總分鐘數。 我需要將其轉換爲HOURS:MINUTES格式。將整數轉換爲時間

有人可以建議如何做到這一點?

感謝, VENU

+0

請[編輯您的問題(https://stackoverflow.com/posts/45719693/edit),包括樣本數據,預期結果,以及你已經嘗試過(什麼它是錯的)。結果應該是什麼樣的數據類型?時間可以超過24小時,如果有的話會發生什麼? –

+0

另外[可能是重複](https://stackoverflow.com/q/11931574/266304)。 –

回答

3

這是一種通過一系列的內置功能來完成一個相當容易的事情。

to_char(floor(field/60) || ':' || to_char(mod(field, 60), 'FM00') 

其分解

  1. 獲取的小時數:to_char(floor(field/60)
    • field/60得到我們的小時
    • floor()數量確保我們不必處理小數點
    • to_char()將它轉換爲一個字符串,所以我們可以連接它。
  2. 添加 ':' || ':' ||
  3. 獲取分鐘數
    • mod(field, 60)得到的field/60
    • to_char()剩餘再次轉換爲字符串的CONCAT步
    • 'FM00'保證我們保持領先的零。

很顯然,你需要與任何在你的數據庫中的字段被稱爲取代field

+0

感謝您提供解決方案。它的工作現在很好。 –

+0

@VenugopalSeetharaman:如果這回答了您的問題,請考慮接受它通過點擊投票按鈕複選標記:) – Jacobm001

0

您可以使用to_date內置函數將整數轉換爲有效時間。

SQL> select to_char (to_date ('2300', 'HH24MI'), 'HH:MI AM') integer_time from dual; 
+0

它只能工作12小時,我不認爲AM/PM是必需的。 –