Обсуждение:
Hi Folks,
This problem is occuring on pgsql 7.2.1 as well as 7.2.2.
I have nothing to say except this is VERY weird. Is there something
evil about 1930-04-27 ?
xxx=>SELECT id,birthdate FROM users WHERE id IN (343,345);
id | birthdate
-----+------------
343 | 1930-04-27
345 | 1963-09-15
(2 rows)
xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =343;
ERROR: Unable to convert date to tm
xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =345;
age
-------------------------------
31 years 3 mons 16 days 01:00
(1 row)
---
Jeff MacDonald
Interchange Technologies
jeff@interchange.ca
---
Yep weird using 7.2.1 and none work on the machine as seen below
oss=> create table test (id integer, birthdate date);
CREATE
oss=> insert into test values (343,'1930-04-27');
INSERT 1283350 1
oss=> insert into test values (345,'1963-09-15');
INSERT 1283351 1
oss=> SELECT id,birthdate FROM users WHERE id IN (343,345);
ERROR: Attribute 'id' not found
oss=> SELECT id,birthdate FROM test WHERE id IN (343,345);
id | birthdate
-----+------------
343 | 1930-04-27
345 | 1963-09-15
(2 rows)
oss=> SELECT age('1995-01-01',birthdate) FROM test where id = 343;
ERROR: Unable to convert date to tm
oss=> SELECT age('1995-01-01',birthdate) FROM test where id = 345;
ERROR: Unable to convert date to tm
oss=> select version();
version
-------------------------------------------------------------
PostgreSQL 7.2.1 on i686-pc-linux-gnu, compiled by GCC 2.96
(1 row)
Definately weird
On Wed, 9 Oct 2002, Jeff MacDonald wrote:
> Hi Folks,
>
> This problem is occuring on pgsql 7.2.1 as well as 7.2.2.
> I have nothing to say except this is VERY weird. Is there something
> evil about 1930-04-27 ?
>
> xxx=>SELECT id,birthdate FROM users WHERE id IN (343,345);
> id | birthdate
> -----+------------
> 343 | 1930-04-27
> 345 | 1963-09-15
> (2 rows)
>
> xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =343;
> ERROR: Unable to convert date to tm
> xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =345;
> age
> -------------------------------
> 31 years 3 mons 16 days 01:00
> (1 row)
>
>
>
> ---
> Jeff MacDonald
> Interchange Technologies
> jeff@interchange.ca
> ---
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
--
Darren Ferguson
You could try
SELECT age( '1995-01-01', CAST( birthdate AS varchar ) )FROM users
Patrick
-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org]On Behalf Of Jeff MacDonald
Sent: Wednesday, October 09, 2002 4:42 PM
To: Postgres List
Subject: [GENERAL]
Hi Folks,
This problem is occuring on pgsql 7.2.1 as well as 7.2.2.
I have nothing to say except this is VERY weird. Is there something
evil about 1930-04-27 ?
xxx=>SELECT id,birthdate FROM users WHERE id IN (343,345);
id | birthdate
-----+------------
343 | 1930-04-27
345 | 1963-09-15
(2 rows)
xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =343;
ERROR: Unable to convert date to tm
xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =345;
age
-------------------------------
31 years 3 mons 16 days 01:00
(1 row)
---
Jeff MacDonald
Interchange Technologies
jeff@interchange.ca
---
---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster
Just giving the thread a topic.. forgot the first time.
> -----Original Message-----
> From: Darren Ferguson [mailto:darren@crystalballinc.com]
> Sent: Wednesday, October 09, 2002 10:46 AM
> To: Jeff MacDonald
> Cc: Postgres List
> Subject: Re: [GENERAL]
>
>
> Yep weird using 7.2.1 and none work on the machine as seen below
>
> oss=> create table test (id integer, birthdate date);
> CREATE
> oss=> insert into test values (343,'1930-04-27');
> INSERT 1283350 1
> oss=> insert into test values (345,'1963-09-15');
> INSERT 1283351 1
> oss=> SELECT id,birthdate FROM users WHERE id IN (343,345);
> ERROR: Attribute 'id' not found
> oss=> SELECT id,birthdate FROM test WHERE id IN (343,345);
> id | birthdate
> -----+------------
> 343 | 1930-04-27
> 345 | 1963-09-15
> (2 rows)
>
> oss=> SELECT age('1995-01-01',birthdate) FROM test where id = 343;
> ERROR: Unable to convert date to tm
> oss=> SELECT age('1995-01-01',birthdate) FROM test where id = 345;
> ERROR: Unable to convert date to tm
> oss=> select version();
> version
> -------------------------------------------------------------
> PostgreSQL 7.2.1 on i686-pc-linux-gnu, compiled by GCC 2.96
> (1 row)
>
> Definately weird
>
>
> On Wed, 9 Oct 2002, Jeff MacDonald wrote:
>
> > Hi Folks,
> >
> > This problem is occuring on pgsql 7.2.1 as well as 7.2.2.
> > I have nothing to say except this is VERY weird. Is there something
> > evil about 1930-04-27 ?
> >
> > xxx=>SELECT id,birthdate FROM users WHERE id IN (343,345);
> > id | birthdate
> > -----+------------
> > 343 | 1930-04-27
> > 345 | 1963-09-15
> > (2 rows)
> >
> > xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =343;
> > ERROR: Unable to convert date to tm
> > xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =345;
> > age
> > -------------------------------
> > 31 years 3 mons 16 days 01:00
> > (1 row)
> >
> >
> >
> > ---
> > Jeff MacDonald
> > Interchange Technologies
> > jeff@interchange.ca
> > ---
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 4: Don't 'kill -9' the postmaster
> >
>
> --
> Darren Ferguson
>
actuall this worked
xx=> SELECT age('1995-01-01',birthdate::datetime) FROM users where id =343;
so i'm all fixed up now.
> -----Original Message-----
> From: Patrick Fiche [mailto:patrick.fiche@aqsacom.com]
> Sent: Wednesday, October 09, 2002 11:10 AM
> To: 'Jeff MacDonald'
> Cc: 'Postgres List'
> Subject: RE: [GENERAL]
>
>
> You could try
> SELECT age( '1995-01-01', CAST( birthdate AS varchar ) )FROM users
>
> Patrick
>
> -----Original Message-----
> From: pgsql-general-owner@postgresql.org
> [mailto:pgsql-general-owner@postgresql.org]On Behalf Of Jeff MacDonald
> Sent: Wednesday, October 09, 2002 4:42 PM
> To: Postgres List
> Subject: [GENERAL]
>
>
> Hi Folks,
>
> This problem is occuring on pgsql 7.2.1 as well as 7.2.2.
> I have nothing to say except this is VERY weird. Is there something
> evil about 1930-04-27 ?
>
> xxx=>SELECT id,birthdate FROM users WHERE id IN (343,345);
> id | birthdate
> -----+------------
> 343 | 1930-04-27
> 345 | 1963-09-15
> (2 rows)
>
> xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =343;
> ERROR: Unable to convert date to tm
> xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =345;
> age
> -------------------------------
> 31 years 3 mons 16 days 01:00
> (1 row)
>
>
>
> ---
> Jeff MacDonald
> Interchange Technologies
> jeff@interchange.ca
> ---
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
"Jeff MacDonald" <jeff@interchange.ca> writes:
> This problem is occuring on pgsql 7.2.1 as well as 7.2.2.
> I have nothing to say except this is VERY weird. Is there something
> evil about 1930-04-27 ?
> xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =343;
> ERROR: Unable to convert date to tm
What's your platform ... a recent Red Hat release perchance? If so,
PG 7.2.3 might make this better. The glibc boys gratuitously broke
mktime() for pre-1970 dates. There's a workaround in 7.2.3. But
do complain to Red Hat if this turns out to be your issue. They
need to hear --- repeatedly --- that this was a stupid, stupid, stupid
decision on the part of the glibc maintainers.
regards, tom lane
Actually this was on FreeBSD 4.6 Release.
Sorry :(
Casting it to datetime fixed the issue.
Jeff.
> -----Original Message-----
> From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
> Sent: Thursday, October 10, 2002 12:38 AM
> To: Jeff MacDonald
> Cc: Postgres List
> Subject: Re: [GENERAL]
>
>
> "Jeff MacDonald" <jeff@interchange.ca> writes:
> > This problem is occuring on pgsql 7.2.1 as well as 7.2.2.
> > I have nothing to say except this is VERY weird. Is there something
> > evil about 1930-04-27 ?
> > xxx=> SELECT age('1995-01-01',birthdate) FROM users where id =343;
> > ERROR: Unable to convert date to tm
>
> What's your platform ... a recent Red Hat release perchance? If so,
> PG 7.2.3 might make this better. The glibc boys gratuitously broke
> mktime() for pre-1970 dates. There's a workaround in 7.2.3. But
> do complain to Red Hat if this turns out to be your issue. They
> need to hear --- repeatedly --- that this was a stupid, stupid, stupid
> decision on the part of the glibc maintainers.
>
> regards, tom lane