Hi, Thanks a lot for reporting the issue!
Regards, Thomas On Thu, Jul 24, 2014 at 6:59 AM, Lukas Eder <[email protected]> wrote: > Thanks, Thomas! > > Cheers, > Lukas > > Am Mittwoch, 23. Juli 2014 21:01:36 UTC+2 schrieb Thomas Mueller: >> >> Hi, >> >> You are right, this is unexpected. I have fixed this now (in the trunk). >> >> Regards, >> Thomas >> >> >> On Mon, Jul 21, 2014 at 6:20 PM, Lukas Eder <[email protected]> wrote: >> >>> Hello, >>> >>> Please consider the following test case: >>> >>> try (PreparedStatement s1 = connection.prepareStatement("select 1 where >>> date '2000-01-01' < ?"); >>> PreparedStatement s2 = connection.prepareStatement("select 1 where >>> date '2000-01-01' < timestamp '2000-01-02 00:00:00'"); >>> PreparedStatement s3 = connection.prepareStatement("select 1 where >>> date '2000-01-01' < {ts '2000-01-02 00:00:00'}")) { >>> s1.setTimestamp(1, Timestamp.valueOf("2000-01-02 00:00:00")); >>> >>> s1.executeQuery(); >>> s2.executeQuery(); >>> s3.executeQuery(); >>> } >>> >>> Intuitively, I'd expect them to all work the same way, but I'm getting >>> the following exception on the last query with the JDBC escape syntax: >>> >>> org.h2.jdbc.JdbcSQLException: Kann "DATE" "2000-01-02 00:00:00" nicht >>> umwandeln >>> Cannot parse "DATE" constant "2000-01-02 00:00:00"; SQL statement: >>> select 1 where date '2000-01-01' < '2000-01-02 00:00:00' [22007-177] >>> at org.h2.message.DbException.getJdbcSQLException(DbException.java:344) >>> at org.h2.message.DbException.get(DbException.java:167) >>> at org.h2.value.ValueDate.parse(ValueDate.java:71) >>> at org.h2.value.Value.convertTo(Value.java:860) >>> at org.h2.expression.Comparison.getValue(Comparison.java:257) >>> at org.h2.expression.Comparison.optimize(Comparison.java:221) >>> at org.h2.command.dml.Select.prepare(Select.java:834) >>> at org.h2.command.Parser.prepareCommand(Parser.java:248) >>> at org.h2.engine.Session.prepareLocal(Session.java:442) >>> at org.h2.engine.Session.prepareCommand(Session.java:384) >>> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1188) >>> at org.h2.jdbc.JdbcPreparedStatement.<init>( >>> JdbcPreparedStatement.java:73) >>> at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:276) >>> at org.jooq.test.all.testcases.PlainSQLTests. >>> testPlainSQLAndJDBCEscapeSyntax(PlainSQLTests.java:697) >>> [...] >>> Caused by: java.lang.NumberFormatException: For input string: "02 >>> 00:00:00" >>> at java.lang.NumberFormatException.forInputString( >>> NumberFormatException.java:65) >>> at java.lang.Integer.parseInt(Integer.java:580) >>> at java.lang.Integer.parseInt(Integer.java:615) >>> at org.h2.util.DateTimeUtils.parseDateValue(DateTimeUtils.java:277) >>> at org.h2.value.ValueDate.parse(ValueDate.java:69) >>> ... 39 more >>> >>> I think there should be no difference between the SQL standard / H2 >>> TIMESTAMP literal (statement s2) and the JDBC escape syntax. >>> >>> Cheers >>> Lukas >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "H2 Database" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> >>> Visit this group at http://groups.google.com/group/h2-database. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "H2 Database" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/h2-database. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/d/optout.
