pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Jakob Lechner <jakob.lechner@applstrudl.com>
To: pgsql-interfaces@postgresql.org
Subject: Timestamp with libpq
Date: Mon, 13 Oct 2008 09:53:01 +0200
Message-ID: <1223884381.3502.10.camel@vie063.fabagl.fabasoft.com> (raw)

Hello everybody,

I'm trying to convert timestamp values returned by an SQL query into an
unix time_t. I'm using the libpq library.

For executing the query I use "PQexecParams" with the parameter
"resultFormat" set to 1 in order to obtain results in binary format.

The table I'm fetching data from was created with the following
statement:
create table testtable (c timestamp);

The statement executed by "PQexecParams" is a simple "select"-statement:
select * from testtable;


I've read that postgres internally handles timestamps as double numbers,
where the timestamp is represented in seconds since 2000-01-01.
Thus, I assumed the data returned by "PQgetvalue" for the timestamp
field is encoded in this format. Then I wrote a little routine, which
takes the double number obtained from "PQgetvalue" and converts it into
an unix time_t. This works perfectly if the postgres server (version
8.1.4-1.1) runs on RHEL but if I query the data from a postgres server
(version 8.1.4-1.3) runnning on SLES the result totally wrong.

Any ideas?

Best regards
Jakob Lechner


-- 
Jakob Lechner
Research & Development
appl.strudl Software GmbH
Honauerstraße 4
A-4020 Linz
Tel.: [+43] (70) 60 61 62
Fax: [+43] (70) 60 61 62-609
E-Mail: jakob.lechner@applstrudl.com
Web: http://www.applstrudl.com
Handelsgericht Linz, FN 303988 t



view thread (7+ messages)  latest in thread

Message-ID: <1223884381.3502.10.camel@vie063.fabagl.fabasoft.com>
Permalink:  ../1223884381.3502.10.camel@vie063.fabagl.fabasoft.com/
Also on:    postgresql.org/message-id/1223884381.3502.10.camel@vie063.fabagl.fabasoft.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: jakob.lechner@applstrudl.com
  Subject: Re: Timestamp with libpq
  In-Reply-To: <1223884381.3502.10.camel@vie063.fabagl.fabasoft.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox