Re: setting PreparedStatement parameter using "at time zone interval ?" - Mailing list pgsql-jdbc

From Tom Lane
Subject Re: setting PreparedStatement parameter using "at time zone interval ?"
Date
Msg-id 23204.1198079325@sss.pgh.pa.us
Whole thread Raw
In response to setting PreparedStatement parameter using "at time zone interval ?"  ("Matt Magoffin" <postgresql.org@msqr.us>)
Responses Re: setting PreparedStatement parameter using "at time zone interval ?"  ("Matt Magoffin" <postgresql.org@msqr.us>)
List pgsql-jdbc
"Matt Magoffin" <postgresql.org@msqr.us> writes:
> I'm using the latest 8.3 development driver against an 8.3 database. I
> thought back in 8.1 I used to be able to use a PreparedStatement that
> included something like
> ... date(l.created AT TIME ZONE INTERVAL ?)

That might've worked back before the driver did real prepared
statements.  It's invalid syntax though, because typename before the
constant works only for simple literal string constants.  You got away
with it when the driver interpolated parameter values into the query as
string literals, but you can't do it anymore.

?::interval (or the full-blown CAST syntax) is the right way.

See
http://developer.postgresql.org/pgdocs/postgres/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS
particularly 4.1.2.5.

            regards, tom lane

pgsql-jdbc by date:

Previous
From: Daniel Migowski
Date:
Subject: Re: TypeInfoCache
Next
From: Gregory Stark
Date:
Subject: Re: TypeInfoCache