druid报错,merge sql error, interval
merge sql error报错
·
今天写sql要取用指定年月的最后一天。使用的是kingbase(postgre)。于是使用了interval对时间戳进行处理。结果发现程序正常执行但druid报错
merge sql error。
select date_trunc('month', to_date('2021-01-01')) + interval '1 month' - interval '1 day'
问题分析
一开始以为是使用了不支持的关键字(毕竟是kingbase)
网上的解决办法都是通过关闭druid 的sql检查来实现规避报错的。可这不是掩耳盗铃吗?
通过查阅标准sql语法可以发现在使用interval关键字的过程中我错误地将时间粒度指示词month放在了单引号内部。更改为以下语句后,报错消失。
select date_trunc('month', to_date('2021-01-01')) + interval '1‘ month - interval '1‘ day
总结
druid报merge sql error错误,但sql正常返回结果通常是由于不够标准的sql语法导致的。这可能会影响查询的实际执行效率,但不影响正常返回结果。参考 sql 标准语法修正后报错即消失。
更多推荐
已为社区贡献1条内容
所有评论(0)