Обсуждение: Inserting an Interval Using JDBC

Поиск
Список
Период
Сортировка

Inserting an Interval Using JDBC

От
Will Szopko
Дата:
My apologies if there's a simple answer to my problem, but I've looked
and looked and can't figure it out.

I have just upgraded to the 8.1-404 version of the JDBC driver from a
much older version. In the past I had been able load an interval into my
database by sending it as a string, as such:

String myInterval = "08:00";  // 8 hour interval
...
stmt.setString(1, myInterval);

Using the new driver I am no longer able to do this and get the
following error:

column "num_hours" is of type interval but expression is of type text

I have looked through the driver source code, but don't see that I could
send the value as an "object" or as one of the other time-related types.
If someone might be able to point me to a solution to this problem, I'd
be most appreciative.

Thanks.

- Will

Re: Inserting an Interval Using JDBC

От
Oliver Jowett
Дата:
Will Szopko wrote:

> I have just upgraded to the 8.1-404 version of the JDBC driver from a
> much older version. In the past I had been able load an interval into my
> database by sending it as a string, as such:
>
> String myInterval = "08:00";  // 8 hour interval
> ...
> stmt.setString(1, myInterval);
>
> Using the new driver I am no longer able to do this and get the
> following error:
>
> column "num_hours" is of type interval but expression is of type text

Use "CAST (? AS INTERVAL)" in your query, or use the custom
org.postgresql.util.PGInterval type and pass an instance to setObject().

-O

Re: Inserting an Interval Using JDBC

От
Will Szopko
Дата:
Oliver -

Thanks, much! I figured the latter out subsequent to my initial post,
but had not thought of the former, which ended up being more elegant for
my application. Again, thanks.

- Will

Oliver Jowett wrote:
> Will Szopko wrote:
>
>> I have just upgraded to the 8.1-404 version of the JDBC driver from a
>> much older version. In the past I had been able load an interval into
>> my database by sending it as a string, as such:
>>
>> String myInterval = "08:00";  // 8 hour interval
>> ...
>> stmt.setString(1, myInterval);
>>
>> Using the new driver I am no longer able to do this and get the
>> following error:
>>
>> column "num_hours" is of type interval but expression is of type text
>
> Use "CAST (? AS INTERVAL)" in your query, or use the custom
> org.postgresql.util.PGInterval type and pass an instance to setObject().
>
> -O
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
>