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

Thanks!

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.

Re: Cannot set TimeZoneOffset on AsPgTimeStamp

Posted: Tue 02 Jun 2020 15:19
by Tiedo000
In version 6.1.3 this problem seems stil not to be solved. It's clear in the sourcecode: TPgTime.TimeZoneOffset is a readwrite property, TPgTimeStamp.TimeZoneOffset is readonly.

When can we expect a bugfix? Is there a workaround?

Re: Cannot set TimeZoneOffset on AsPgTimeStamp

Posted: Wed 03 Jun 2020 07:16
by Tiedo000
It looks like TPgParam.AsSQLTimeStampOffset does not work either (AsSQLTimeStamp does).
Is there any way at all to use the PostgreSQL type "timestamp with time zone" with PgDAC?

Re: Cannot set TimeZoneOffset on AsPgTimeStamp

Posted: Mon 15 Jun 2020 09:55
by oleg0k
Hello,
In order to get a detailed answer, please compose a small sample demonstrating the specified behavior and send it to us including scripts for creating and filling database objects.

wbr, Oleg
Devart Team