Thread: Unable to convert date to tm

Unable to convert date to tm

From
"Joerg Ludwig"
Date:
Hello,

I get an error if I try to convert a date before 1970 into a timestamp:

# SELECT (date '1970-01-01')::timestamp;
      timestamptz
------------------------
 1970-01-01 00:00:00+01
(1 row)

# SELECT (date '1969-12-31')::timestamp;
ERROR:  Unable to convert date to tm

I get this error using the RPM postgresql-7.2.1-5 (Red Hat) and
postgresql-7.2.2-1PGDG.
(Btw: What does "tm" stand for?)

On another Linux machine (which should be configured quite similar)
using RPM postgresql-7.2.1-2PGDG there is no error - both SELECT
statements work as expected.

Thx in advance,
Joerg Ludwig

Re: Unable to convert date to tm

From
Tom Lane
Date:
"Joerg Ludwig" <joerg.ludwig@hvf-bs.net> writes:
> # SELECT (date '1969-12-31')::timestamp;
> ERROR:  Unable to convert date to tm

Let me guess --- 7.3 Red Hat installation?

This is brain damage in mktime() in recent glibc releases; they
arbitrarily decided to stop supporting pre-1970 dates.

We've patched around it for Postgres 7.3, but there's no fix available
for existing PG releases.  Send complaints to the glibc folk.

            regards, tom lane