Page 1 of 1

Cannot set TimeZoneOffset on AsPgTimeStamp

Posted: Thu 29 Nov 2018 06:59
by tristan
Hi, I am inserting into a table where one of the columns is of type timestamptz (timestamp with time zone).

The problem occurs where I am just setting the param values of the query.

In my delphi code:

Code: Select all

Query.ParamByName('datetime').AsPgTimeStamp.TimeZoneOffset := 0;
I would like to do this. But TimeZoneOffset is read only, cannot set value here. Where interestingly you can for PgTime. I.e.

Code: Select all

Query.ParamByName('datetime').AsPgTime.TimeZoneOffset := 0;
Is it intended not too be able to write to AsPgTimeStamp.TimeZoneOffset? As I cannot see any way for this to be set. (Other than setting via a string).

It is just strange when HasTimeZone is settable for AsPgTimeStamp, and that TimeZoneOffset is settable for AsPgTime.

I can work around with formatting strings. But it would be nice to be able to specify numerically.

I can see the value is initialised to the local time of the machine. So one could work with that. I want to insert as UTC, but i can convert back to local time then insert using this. Just seems haphazard.

Is this a known issue? Or am I just going about this in the wrong way? (E.g. it is only intended to be populated via the dataset or other means and to be read only. But then why can we set HasTimeZone?).


Re: Cannot set TimeZoneOffset on AsPgTimeStamp

Posted: Thu 29 Nov 2018 13:33
by azyk
Thank you for the information.

We will investigate this behavior of TCustomPgTimeStamp.TimeZoneOffset and will let you know the results.