将年,月,日,小时,分钟和秒字段组合到SQL中“TIMESTAMP”的一列

时间:2012-10-10 07:55:41

标签: postgresql timestamp

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

如何将它们组合成“TIMESTAMP”格式的单列?

提前谢谢。

3 个答案:

答案 0 :(得分:2)

  SELECT year || '-' || month  || '-' || day  || ' ' || hour  || ':' || minute  || ':' || second FROM table_name

答案 1 :(得分: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"

答案 2 :(得分:0)

自Postgres 9.4以来,这变为a lot easier

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

这假设所有列都是整数(second除外,它也可以是双精度数)

要创建date,请使用make_date()time值使用make_time()