postgresのの列からタイムスタンプを作成します
-
26-09-2019 - |
質問
私は、カラム内の2行、私にユリウス日(その日が1であることと1970年1月1日からの日数を、)摂食1を持って、2番目の列は、(現在の日の真夜中を過ぎて数分の数ですそれがこのように行われていた理由を、私は考えている)。
私、私のSQLクエリは、これら2つの列のうちのタイムスタンプを作成するために取得したいと思います。
私は先に時間のデータへのアクセスを持っていた場合、私はSELECT timestamp '1970-01-01 00:00:00' + INTERVAL 'X DAYS' + INTERVAL 'Y MINUTES' AS my_time FROM mytable
ような何かを行うことができますが、XとY iが照会していますテーブルの実際のメンバーであるので、簡単なます。
誰か提案がありますか?
基本的に、私は同等の[法的]解決策を探しています:
SELECT timestamp '1970-01-01 00:00:00' + INTERVAL 'my_col1 DAYS' + INTERVAL 'my_col2 MINUTES' AS my_time FROm mytable
私は私のサーバー側のコードは私のためにそれを行うには得ることができますが、私は私のクエリにそれを構築することができれば、私はそれを愛するだろう。
解決
あなたは間隔の文字列を構築し、その後interval
型にそれらをキャストすることができます:
SELECT
timestamp '1970-01-01 00:00:00' +
cast(my_col1 || ' DAYS' AS interval) +
cast(my_col2 || ' MINUTES' AS interval) my_time FROM mytable
他のヒント
文字列置換または連結に頼ることなく、
SELECT
timestamp '1970-01-01 00:00:00' +
my_col1 * interval '1 DAY' +
my_col2 * interval '1 MINUTE' FROM mytable
所属していません StackOverflow