Re: Text->Date conversion in a WHERE clause - Mailing list pgsql-sql

From cadiolis@gmail.com
Subject Re: Text->Date conversion in a WHERE clause
Date
Msg-id 1129153075.962155.131260@g43g2000cwa.googlegroups.com
Whole thread Raw
In response to Text->Date conversion in a WHERE clause  (Collin Peters <cadiolis@gmail.com>)
Responses Re: Text->Date conversion in a WHERE clause
List pgsql-sql
As an example:

CREATE TABLE userdata (   userdata_id serial NOT NULL,   user_id smallint,   data text
);

CREATE TABLE users (   user_id serial NOT NULL,   name text,   "type" smallint
);

INSERT INTO userdata (userdata_id, user_id, data) VALUES (1, 1,
'2005-01-01');
INSERT INTO userdata (userdata_id, user_id, data) VALUES (2, 2,
'2005-10-10');
INSERT INTO userdata (userdata_id, user_id, data) VALUES (3, 3,
'052-44-5863');
INSERT INTO userdata (userdata_id, user_id, data) VALUES (4, 4,
'052-44-5863');

INSERT INTO users (user_id, name, "type") VALUES (1, 'Jim', 1);
INSERT INTO users (user_id, name, "type") VALUES (2, 'John', 1);
INSERT INTO users (user_id, name, "type") VALUES (3, 'Bob', 2);
INSERT INTO users (user_id, name, "type") VALUES (4, 'Bill', 2);


Then run the query:
SELECT *
FROM
(SELECT u.user_id, ud.dataFROM users u, userdata udWHERE u.user_id = ud.user_idAND u.type = 1
) subusers
WHERE subusers.data::text::date <  now();

Returns the message: ERROR:  date/time field value out of range:
"052-44-5863"

So my question is how does this query ever even SEE the row containing
"052-44-5863"?  The sub-query doesn't return that row so I don't see
how it can get this error.

Regards,
Collin Peters



pgsql-sql by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: regular expression
Next
From: Greg Stark
Date:
Subject: Re: pg, mysql comparison with "group by" clause