Postgres将时间戳列拆分为时间列和日期列

时间:2013-05-14 11:25:18

标签: postgresql

嗨,因为标题说我的表中有一个名为healthtime的列,它的类型为timestamp,没有时区,即

Healthime
2012-02-02 08:15:00

我想把它分成同一个表中的两个新列,一个日期列和一个时间列,即。

Date        Time
2012-02-02  08:15:00

请有人建议我如何做到这一点(最好是在一个查询中),

谢谢, 詹姆斯

2 个答案:

答案 0 :(得分:6)

不是一个查询,而是一个事务......也应该没问题:

我的表格如下:

CREATE TABLE d (t timestamp);

更改表格的代码:

BEGIN;

ALTER TABLE d ADD COLUMN dat date;
ALTER TABLE d ADD COLUMN tim time;

UPDATE d
SET
    dat = t::date,
    tim = t::time;

ALTER TABLE d DROP COLUMN t;  

COMMIT;

答案 1 :(得分:1)

SELECT Healthime::date from tbl_yourtable as date
SELECT Healthime::time(0) from tbl_yourtable as time

PostgreSQL版本:> = 10