4

次の列を個別に含むテーブルがあります:年、月、日、時、分、秒

それらを「TIMESTAMP」形式の単一の列として結合するにはどうすればよいですか?

前もって感謝します。

4

3 に答える 3

2
  SELECT year || '-' || month  || '-' || day  || ' ' || hour  || ':' || minute  || ':' || second FROM table_name
于 2012-10-10T08:02:28.277 に答える
2

連結を使用してタイムスタンプにキャストするだけです。次に例を示します。

CREATE TABLE test (year integer, month integer, day integer,
                   hour integer, min integer,   sec integer);

INSERT INTO  test (year, month, day, hour, min, sec)
           VALUES (2012,    10,  11,   01,  10,  35);

SELECT (year::text || '-' || month::text || '-' || day::text || ' '
     || hour::text || ':' || min::text   || ':' || sec::text)::timestamp
FROM test

"timestamp"
"10/11/2012 1:10:35 AM"
于 2012-10-10T08:20:39.450 に答える
1

Postgres 9.4 以降、これは非常に簡単になりました。

select make_timestamp(year, month, day, hour, minute, second) as ts_value
from the_table;

これは、すべての列が整数であることを前提としています (ただしsecond、double になる可能性があるものを除く)。

そして、を作成するdatemake_date()は、time値を使用するために使用しますmake_time()

于 2017-02-03T07:08:47.817 に答える