2

嗨,正如标题所说,我的表中有一个名为 healthtime 的列,它的类型是没有时区的时间戳,即

Healthime
2012-02-02 08:15:00

我想将其拆分为同一个表中的两个新列,一个日期列和一个时间列,即

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

请有人可以告诉我如何做到这一点(最好在单个查询中),

谢谢,詹姆斯

4

2 回答 2

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;
于 2013-05-14T11:41:11.910 回答
2
SELECT Healthime::date from tbl_yourtable as date
SELECT Healthime::time(0) from tbl_yourtable as time

PostgreSQL 版本:>= 10

于 2018-04-20T05:41:00.923 回答