Re: Fwd: Query parameter types not recognized

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Arjen Nienhuis <a(dot)g(dot)nienhuis(at)gmail(dot)com>, Roberto Balarezo <rober710(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Fwd: Query parameter types not recognized
Date: 2017-02-10 21:44:34
Message-ID: 25d262e9-313c-f794-1a52-bba8bd8433ef@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 02/10/2017 01:33 PM, Arjen Nienhuis wrote:
>
>
> On Feb 10, 2017 8:11 PM, "Roberto Balarezo" <rober710(at)gmail(dot)com
> <mailto:rober710(at)gmail(dot)com>> wrote:
>
> Hi, I would like to know why this is happening and some advice if
> there is a way to solve this problem:
>
> I have a query like this:
>
> |select COALESCE(duedate, ? + 1) from invoices order by duedate desc
> limit 10; |
>
> where ? is a query parameter. I’m using JDBC to connect to the
> database, and sending parameters like this:
>
> |query.setDate(1, defaultDueDate); |
>
> If you want to add to a date you cannot just add 1. You need an
> interval: coalesce(duedate, ? + interval '1 day')
>
> See:
>
> https://www.postgresql.org/docs/9.6/static/functions-datetime.html

Actually that is not the case, from above docs:

"Also, the + and * operators come in commutative pairs (for example both
date + integer and integer + date); we show only one of each such pair."

and:

test=# select current_date;
date
------------
2017-02-10
(1 row)

test=# select current_date + 1;
?column?
------------
2017-02-11
(1 row)

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Roberto Balarezo 2017-02-10 21:51:24 Re: Fwd: Query parameter types not recognized
Previous Message Roberto Balarezo 2017-02-10 21:43:52 Re: Fwd: Query parameter types not recognized