2012-06-13 1 views
1

Мне нужно сравнить дату и временную метку в запросе SELECT. Как правило, это поддерживается большинством других платформ БД (MySQL, MSSQL, Oracle и т.д.), но в Дерби он бросает эту ошибку:, сравнивая временную метку и дату в Derby

Caused by: java.sql.SQLSyntaxErrorException: Comparisons between 'DATE' and 'TIMESTAMP' are not supported. Types must be comparable. String types must also have matching collation. If collation does not match, a possible solution is to cast operands to force them to the default collation (e.g. SELECT tablename FROM sys.systables WHERE CAST(tablename AS VARCHAR(128)) = 'T1')

Я не хочу использовать слепки, потому что я не могу изменить запрос SQL , Это ошибка от Derby, которая когда-нибудь будет исправлена? В настоящее время я использую Derby 10.8.2.2.

Спасибо!

ответ

-1

Возможно, вы можете определить VIEW на одной из таблиц и включить CAST в VIEW. Таким образом, вам не нужно изменять фактический запрос; это будет противоречить взгляду и, таким образом, включить бросок таким образом.

0

Если вы подключаетесь из программы Java вы можете получить определенные части Timestamp с использованием различного getxxx() методами (они фактически унаследовали от java.util.Date)

См Документов http://docs.oracle.com/javase/7/docs/api/java/util/Date.html

и проверьте методы getDate(), getDay() getHour() ....

 Смежные вопросы

  • Нет связанных вопросов^_^