Re: Adding timestamp column - Mailing list pgsql-admin

From Holger Jakobs
Subject Re: Adding timestamp column
Date
Msg-id 2aa85cf2-dfb1-474e-b190-0a96d7afeb2b@jakobs.com
Whole thread Raw
In response to Adding timestamp column  (Mauricio Fernandez <mmauricio.fernandez@gmail.com>)
Responses Re: Adding timestamp column
List pgsql-admin
Am 03.09.25 um 17:50 schrieb Mauricio Fernandez:
> Hi admins, greetings.
>
> I'm trying to add a timestamp column in an existent table.
>
> This query works fine:
>
> select timecreated, timezone('America/Santiago'::text, 
> to_timestamp(timecreated::double precision)) datecreated
> from MDL_LOGSTORE_STANDARD_LOG;
>
> But, when I want to alter the table I get  a syntax error
>
> alter table MDL_LOGSTORE_STANDARD_LOG
>   add column datecreated timestamp
>   generated always as ( timezone ('America/Santiago'::text, 
> to_timestamp(timecreated::double precision)));
>
> SQL Error [42601]: ERROR: syntax error at end of input
>   Position: 185
>
> I would appreciate some tips
>
> Thanks in advanced
>
> kind regards
>
> Mauricio Fernández

Instead of

alter table MDL_LOGSTORE_STANDARD_LOG
   add column datecreated timestamp
   generated always as ( timezone ('America/Santiago'::text, 
to_timestamp(timecreated::double precision)));

I would suggest

ALTER TABLE MDL_LOGSTORE_STANDARD_LOG
ADD COLUMN datecreated TIMESTAMP
   GENERATED ALWAYS AS (timecreated AT TIME ZONE 'America/Santiago') STORED;

You didn't tell us the data type of the column timecreated. It should be 
'TIMESTAMPTZ DEFAULT current_timestamp' for it to work properly.

As of Version 18 you can leave out STORED, creating a virtual generated 
column.

Kind Regards,

Holger

-- 

Holger Jakobs, Bergisch Gladbach




pgsql-admin by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Adding timestamp column
Next
From: Mauricio Fernandez
Date:
Subject: Re: Adding timestamp column