On 2020-04-30 12:12, Tony Whyman wrote:
In the README.time_zone, the SET BIND OF TIME ZONE TO EXTENDED is
described as being intended to "solve a problem of representing
correct time on clients missing ICU library".
All the text I can find, discusses how this is used when reading a
TIMESTAMP WITH TIME ZONE data type from a database, but how does this
apply to data input?
My understanding is that when a client local ICU is present, the
encodeTimeStampTz call uses the client local ICU to translate the
timestamp to GMT before passing it to the database. If no client local
ICU is present and the SET BIND has been executed then what happens?
No matter of presence (or absense) of local ICU on the client extended
information is silently ignored by server when data is passed from client.
Is the timestamp passed to the server where it is translated to GMT or
is an error raised?
Correct TIMESTAMP WITH TIME ZONE should be prepared by application, may
be using encodeTimeStampTz(). Take into an account - ability to use
symbolic names (like "MSK") for TZ when calling encodeTimeStampTz()
depends upon presence or absense of ICU on the client. On the other hand
numeric name of TZ (like "+03:00") is always usable.
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel