2017-08-16 8 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. 追加 ':' || ':' ||
    • mod(field, 60)が再びfield/60
    • to_char()の残りの部分を取得します
    • '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は必要ではないと思います。 –