- Notifications
You must be signed in to change notification settings - Fork33
Description
We are using the PostgreSQL native ODBC driver to select data from a PostgreSQL table with timestamp with time zone column. The driver is truncating the TIMEZONE component from the data and is just returning the timestamp value.
The DDL and DML details are given below:
postgres=# create table public.tstztab(tscol timestamp, tstzcol timestamptz);
CREATE TABLE
postgres=# insert into public.tstztab values(current_timestamp, current_timestamp);
INSERT 0 1
postgres=# select * from public.tstztab;
tscol | tstzcol
----------------------------+-------------------------------
2025-03-06 18:10:10.732499 | 2025-03-06 18:10:10.732499-08
(1 row)
And when we run the program to select the data from both the columns, We get the same data for both the columns, where the tz info is getting truncated (basically getting the wrong data). Please note that the SQL_C_CHAR is used as the C data type for both the columns.
bash-4.4$ ./a.out
Connecting to database.
Connected to database.
Fetching results...
2025-03-06 18:10:10.732499 2025-03-06 18:10:10.732499
Attached the standalone ODBC program, using which the reported issue can be easily reproduced.
Can you please let us know how to retrieve the complete data (including the TZ component) from a TIMESTAMP with TIME ZONE type column using the PostgreSQL native ODBC driver.
Quick help is much appreciated!!
Thanks,
Ranjeeth.