Inserting timestamp values from windowz application

From: "cnliou" <cnliou(at)so-net(dot)net(dot)tw>
To: "" <pgsql-interfaces(at)postgresql(dot)org>
Subject: Inserting timestamp values from windowz application
Date: 2003-12-02 17:27:36
Message-ID: 1070386056.30928.cnliou@so-net.net.tw
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Hi!

I am inserting timestamp values from C++Builder project1.exe
compiled with ZEOSLIB on Win98 (set to time zone UTC+8
hours) into the table:

CREATE TABLE (c1 TIMESTAMP WITH TIME ZONE);

After project1.exe connects to postgres via libpq.dll, the
query

SHOW TIME ZONE

returns "unknown", which is as expected. Then I do the
insert from project1.exe:

INSERT INTO test VALUES (CAST('2003-1-1' AS TIMESTAMP));

What weird is that this datetime value is saved to column c1
as 2002-12-31 16:00:00 UTC. This means that some component
among zeoslib, libpq, win98, or postgres is _too_ smart that
it assumes the to-insert value being local time at time zone
UTC+08 and converts the value to UTC.

This automatic behavior is not what I would like to see. I
guess zeoslib is unlikely to be the component that does the
conversion. How does this smart component know that the
to-insert value stands for the local time at UTC+08 time
zone?

I need a "manual" way to explicitly tell postgres the
client's time zone by sending from project1.exe the query
"SET TIME ZONE -5" or the like to postgres.

Would anyone kindly offer some solutions to my requirement
or explanations for the symptom?

Regards,

CN

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Tom Lane 2003-12-02 18:06:25 Re: Inserting timestamp values from windowz application
Previous Message jtv 2003-12-02 13:55:10 Re: libpq++ ... and kdevelop ... needed packageto get