Emi Lu <em...@encs.concordia.ca> writes: > With ibatis, do overlap checking:
> (1) select (DATE #begin_date#, DATE #end_date#) overlaps > (DATE '2008-01-01', DATE '2009-01-01') > . #begin_date# is varchar > . #end_date# is varchar > Cause: java.sql.SQLException: ERROR: syntax error at or near "$4" > However, when I updated the query to > (2) select (#begin_date#::DATE, #end_date#::DATE) overlaps > (DATE '2008-01-01', DATE '2009-01-01') > It works. I am bit confused why (1) does not work, but (2) does? The syntax DATE 'foo' (or more generally, typename 'foo') works only for string-literal constants 'foo'. It looks like what your frontend is actually sending is a parameter symbol, like DATE $1, which is a syntax error. There is more about this in the manual, sections 4.1.2.5 and 4.2.8: http://www.postgresql.org/docs/8.3/static/sql-syntax.html regards, tom lane -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql