Thread: Inserting an Interval Using JDBC
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
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
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 >