4

我有一个表格,其中分别包含以下列:年、月、日、小时、分钟、秒

如何将它们组合为“TI​​MESTAMP”格式的单个列?

先感谢您。

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它也可以是双精度)

并创造一个date,使用make_date(),为一个time价值使用make_time()

于 2017-02-03T07:08:47.817 回答