以数据库中varchar类型的时间作为where条件在mybatis中查询报错:Illegal mix of collations for operation '<='
应用场景:数据库中时间是以varchar类型保存的时间字符串,要求查询出满足时间要求的数据,所以遇到了一些问题
1.在navicat中完美执行:
SELECT
count,
o_date
FROM
cfg_hc_meinianxinzenghuiyuansh
WHERE
str_to_date( o_date, '%Y-%m-%d' ) <= '2019-08-29'
ORDER BY
o_date DESC
LIMIT 7
结果:
但是放入到mapper.xml中后将 "<="符号变成了 "<="否则小于号会被解析成开始标签,然后运行就报错了
解决:
使用<![CDATA[]]>,这样使用就不用转成"<=",因为在这里面的sql不会被解析