出现以下报错信息
运行时异常: ### Error querying database. Cause: org.postgresql.util.PSQLException: 错误: 语法错误 在 "{" 或附近的 位置:237 ### The error may exist in file [D:\SVNCode\SCDZ\trunk\SCDCMIS\target\classes\mybatis\DataManage\VJcba10aMapper.xml] ### The error may involve com.jeethink.project.DataManage.jcba10a.mapper.VJcba10aMapper.selectVJcba10aList-Inline ### The error occurred while setting parameters ### SQL: select count(0) from (SELECT zhaa01a090, zhaa01a110, zhaa01a010, zhaa01a020, Count(zhaa01a010) as bangfunum, jcba09a050 FROM v_jcba10a WHERE ZHAA01A875 like '%'||{zhaa01a875}||'%' GROUP BY zhaa01a090, zhaa01a110, zhaa01a010, zhaa01a020,jcba09a050 ORDER BY zhaa01a010 asc) tmp_count ### Cause: org.postgresql.util.PSQLException: 错误: 语法错误 在 "{" 或附近的 位置:237 ; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: 错误: 语法错误 在 "{" 或附近的 位置:237
可能是因为在不能进行模糊查询的字段上进行了模糊查询,比如Date是不可以进行模糊查询的,需要转成字符串的时间来进行模糊查询。
日期类型的模糊查询是不能直接进行的,要先转换成字符串然后再查询
例子如下:
select * from table where to_char(yyyy-mm-dd hh24:mi:ss) like ‘%08:30:00%’
这里要注意的是postgre的时间处理上,不分大小写,时分秒格式:hh24:mi:ss,这样才能正常的显示
这样查出的就是所有的时间为8点的数据
SELECT
zhaa01a090,
zhaa01a110,
zhaa01a010,
zhaa01a020,
COUNT ( zhaa01a010 ) AS bangfunum,
jcba09a050
FROM
v_jcba10a
WHERE
to_char(jcba10a080, 'yyyy-mm-dd hh24:mi:ss') LIKE'%1956-01%'
GROUP BY
zhaa01a090,
zhaa01a110,
zhaa01a010,
zhaa01a020,
jcba09a050
ORDER BY
zhaa01a010 ASC