You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行SQL语句报42000语法错误HOURS[*]无法预编译问题咨询

错误原因
  • 语法报错的位置就是错误提示中[*]标注的20 HOURS部分,这种直接在数值后加时间单位的写法不属于通用SQL规范,不同数据库对时间增量运算的语法支持不同,SQL解析器无法识别该写法所以抛出42000语法错误。
  • 你使用的Hibernate框架会先对SQL语句做预编译校验,不兼容的语法会提前触发SQLGrammarException异常,不会提交到数据库端执行。
修复方案

根据你使用的数据库类型选择对应兼容的时间运算写法即可:

  • MySQL / MariaDB 场景
SELECT * FROM GY.TABLE_NAME WHERE TEST_ID < 999999999 AND current_timestamp > DATE_ADD(TEST_GMTS, INTERVAL 20 HOUR)
  • PostgreSQL 场景
SELECT * FROM GY.TABLE_NAME WHERE TEST_ID < 999999999 AND current_timestamp > TEST_GMTS + INTERVAL '20 HOURS'
  • Oracle 场景
SELECT * FROM GY.TABLE_NAME WHERE TEST_ID < 999999999 AND current_timestamp > TEST_GMTS + NUMTODSINTERVAL(20, 'HOUR')
  • SQL Server 场景
SELECT * FROM GY.TABLE_NAME WHERE TEST_ID < 999999999 AND current_timestamp > DATEADD(HOUR, 20, TEST_GMTS)
  • 跨数据库兼容场景(适配Hibernate预编译校验)
SELECT * FROM GY.TABLE_NAME WHERE TEST_ID < 999999999 AND current_timestamp > TEST_GMTS + INTERVAL 20 HOUR

内容的提问来源于stack exchange,提问作者Paruchuri Ratan Chowdary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:06:01