问题:在查询条件为日期时间段时,正常查询时由于前台的日期格式忽略了时分秒,所以结束日期为2022-01-19 00:00:00 为一天的零点。这时就带来了一个问题,数据库里的数据为2022-01-19 01:00:00时,明显是大于这个时间的,所以我想查询1-19号当天的就必须查询20号的日期才会查得到,这显然是不行的。
解决:需要对数据库的日期字段进行格式化处理,处理为 'YYYY-MM-DD’的格式
oracle 数据库用to_char(字段名,‘YYYY-MM-DD’)
例如
to_char(a.APPLYTIME,'YYYY-MM-DD') <![CDATA[<=]]> #{query.APPLYTIMEE,jdbcType=VARCHAR}
mysql数据库使用DATE_FORMAT(字段名,’%Y-%m-%d’)
例如
DATE_FORMAT(a.ADDBILLTIME,'%Y-%m-%d')<![CDATA[>=]]> STR_TO_DATE(#{query.YFBILLDATES,jdbcType=VARCHAR},'%Y-%m-%d')