Cannot set TimeZoneOffset on AsPgTimeStamp

Discussion of open issues, suggestions and bugs regarding PgDAC (PostgreSQL Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
Posts: 2
Joined: Thu 29 Nov 2018 06:31

Cannot set TimeZoneOffset on AsPgTimeStamp

Post by tristan » Thu 29 Nov 2018 06:59

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?).


Devart Team
Posts: 1119
Joined: Fri 11 Apr 2014 11:47
Location: Alpha Centauri A

Re: Cannot set TimeZoneOffset on AsPgTimeStamp

Post by azyk » Thu 29 Nov 2018 13:33

Thank you for the information.

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

Post Reply