SQL-запрос, сравнивающий временные метки, работает в MySQL, но не работает при использовании базы данных H2.
Например, это запрос, выдающий исключение:
SELECT * FROM table WHERE time >= '2019-02-01T10:59:12.632Z' AND time <= '2019-04-12T10:59:12.632Z'
Запрос создается динамически с использованием кода Java, а приведенные выше временные метки имеют тип java.time.Instant
.
Я даже пытался использовать другие типы объектов даты / времени с тем же результатом.
Этот запрос выполняется нормально с использованием MySQL, но выдает следующую ошибку с использованием базы данных H2:
org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement
"SELECT * FROM table WHERE time>= 2019-04-10T13[*]:31:19.498Z AND time <= 2019-04-07T13:31:19.498Z";
SQL statement:
SELECT * FROM table WHERE time >= 2019-04-10T13:31:19.498Z AND time<= 2019-04-07T13:31:19.498Z
Мне кажется странным, что использование временных меток, разделенных двоеточиями, вызывает эту проблему, тем более что в документах H2 используются аналогичные временные метки