Skip to content

SELECT does not return TimeZone Info from a TIMESTAMP with TIME ZONE column #95

Open

Description

@raddakal

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.

select_ts_pg.txt

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.

Activity

  1. davecramer commented on Mar 7, 2025

    @davecramer
    Contributor

    That's interesting. Thanks for the report

  2. davecramer commented on Mar 10, 2025

    @davecramer
    Contributor

    From what I can tell ODBC does not support TIMESTAMP WITH TIME ZONE. I'm as surprised as you are.
    I would not expect it to simply truncate it. Does it return it with the time adjusted correctly?

  3. raddakal commented on Mar 11, 2025

    @raddakal
    Author

    It simply truncates the time zone component without adjusting the data value.
    Can the timetz/timestamptz data be returned as any other SQL_VARCHAR data column (to return the data as is)?

    Thanks.

  4. davecramer commented on Mar 14, 2025

    @davecramer
    Contributor

    I suppose it could. Feel free to provide a PR

  5. raddakal commented on Sep 19, 2025

    @raddakal
    Author

    Can you please let us know what is the process for submitting the PR? Do I need to obtain any privileges to be able to submit the PR? If there is any document for this process, please share the same.

    We will try to work on this issue.

    Thanks.

  6. davecramer commented on Sep 19, 2025

    @davecramer
    Contributor

    clone the repo into your own account. create a branch, make your changes and push to that branch. Then create a PR from your branch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions