我正在尝试执行此SQL查询
SELECT * FROM GY.TABLE_NAME WHERE TEST_ID < 999999999 AND current_timestamp > TEST_GMTS + 20 HOURS
当我期待它时,响应是
SQL错误42000,SQL状态:42000 SQL语句“SELECT * FROM戈伊.TABLE_NAME WHERE测试ID〈999999999 AND当前时间戳〉测试GMTS + 20小时[*]”中存在语法错误
Org.hiberante.exception.sqlgrammerexception:无法准备语句
1条答案
按热度按时间gcuhipw91#
对于H2(以及任何其他支持标准INTERVAL数据类型的DBMS),您需要使用
不幸的是,DB2似乎不支持这种符合标准的语法。
20 HOURS
特定于DB2。这意味着您需要对不同的数据库使用不同的SQL。
下一个版本的H2(2.0.*)还将支持更多的外来语法
(with DB2也接受这种语法,所以假设您可以从当前的源代码编译H2,如果您确实需要为H2和DB2使用相同的SQL,则可以使用自己的构建版本而不是发布的版本,但是当前的H2与1.4.* 有很大的不同,您可能会遇到其他一些问题。