将列从Date类型转换为Timestamp

时间:2015-09-01 14:10:20

标签: sql postgresql date datetime

我有一个名为modify的列的表,其类型为Date。我已将其转换为TIMESTAMP WITHOUT TIME ZONE类型。

此列数据由触发器更新:

CREATE OR REPLACE FUNCTION trigA()
  RETURNS trigger AS
$BODY$
begin
    new.modify=current_date;
    return new;
end;
$BODY$
  LANGUAGE plpgsql VOLATILE

只是跟踪有人更新行的时间。

current_dateDate没问题但是时间不够,所以我想将其更改为:current_timestamp。但是根据manualcurrent_timestamp给出timestamp with time zone

我传递整个页面,无法找到timestamp without time zone类型的当前日期和时间。

我的问题:如何将当前日期和时间插入timestamp without time zone字段。

1 个答案:

答案 0 :(得分:0)

您应该使用LOCALTIMESTAMP

CREATE OR REPLACE FUNCTION trigA()
  RETURNS trigger AS
$BODY$
begin
    new.modify=LOCALTIMESTAMP;
    return new;
end;
$BODY$
  LANGUAGE plpgsql VOLATILE

PostgreSQL manual提到:

  

CURRENT_TIME和CURRENT_TIMESTAMP提供带时区的值;   LOCALTIME和LOCALTIMESTAMP提供没有时区的值。