質問

私は、カラム内の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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top