1

列に 2 つの行があり、1 つはユリウス日 (1970 年 1 月 1 日からの日数で、その日を 1 とする) を提供し、2 番目の列は現在の日の午前 0 時を過ぎた分数 (なぜそうなったのか) です。このようにして、私にはわかりません)。

SQL クエリを取得して、これら 2 つの列からタイムスタンプを作成したいと考えています。

事前にデータにアクセスできれば、次のようなことができますSELECT timestamp '1970-01-01 00:00:00' + INTERVAL 'X DAYS' + INTERVAL 'Y MINUTES' AS my_time FROM mytableが、X と Y はクエリしているテーブルの実際のメンバーであるため、それほど単純ではありません。

誰か提案はありますか?

基本的に、私は同等の[法的]解決策を探しています:

SELECT timestamp '1970-01-01 00:00:00' + INTERVAL 'my_col1 DAYS' + INTERVAL 'my_col2 MINUTES' AS my_time FROm mytable

サーバー側のコードを取得して実行することはできますが、それをクエリに組み込むことができれば幸いです。

4

2 に答える 2

3

間隔文字列を構築してから、それらを次の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
于 2010-08-05T18:23:34.717 に答える
0

文字列の置換や連結に頼らずに:

SELECT
    timestamp '1970-01-01 00:00:00' +
    my_col1 * interval '1 DAY' +
    my_col2 * interval '1 MINUTE' FROM mytable
于 2010-08-05T18:50:25.250 に答える