X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (av.hub.org [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 7551AD8095 for ; Wed, 12 Oct 2005 18:38:11 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 43129-05 for ; Wed, 12 Oct 2005 21:38:00 +0000 (GMT) Received: from floppy.pyrenet.fr (floppy.pyrenet.fr [194.116.145.2]) by svr1.postgresql.org (Postfix) with ESMTP id 39352D80C9 for ; Wed, 12 Oct 2005 18:38:01 -0300 (ADT) Received: by floppy.pyrenet.fr (Postfix, from userid 106) id 7B48F31059; Wed, 12 Oct 2005 23:38:02 +0200 (MET DST) From: cadiolis@gmail.com X-Newsgroups: pgsql.sql Subject: Re: Text->Date conversion in a WHERE clause Date: 12 Oct 2005 14:37:56 -0700 Organization: http://groups.google.com Lines: 50 Message-ID: <1129153075.962155.131260@g43g2000cwa.googlegroups.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Complaints-To: groups-abuse@google.com User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: g43g2000cwa.googlegroups.com; posting-host=205.250.117.160; posting-account=svG4SQ0AAAApskUVU3eS2fzP7wG1t-fv To: pgsql-sql@postgresql.org X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.281 required=5 tests=[AWL=-0.104, NO_REAL_NAME=0.178, UPPERCASE_25_50=0.207] X-Spam-Level: X-Archive-Number: 200510/107 X-Sequence-Number: 22960 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.data FROM users u, userdata ud WHERE u.user_id = ud.user_id AND 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