关于Mapper文件中日期比较

对于同一天内不能用>=或者<=查出同一天的数据

Oracle:可以使用to_number函数和to_char来实现完成 sql写法:

to_number(to_char(sysdate,yyyyMMdd)) >= 20180102(类似的时间格式数据)

Mapper中写法

to_number(to_char(“时间字段”,yyyyMMdd)) &gt;= to_number(to_char(#{日期参数},yyyyMMdd))
to_number(to_char(“时间字段”,yyyyMMdd)) &lt;= to_number(to_char(#{日期参数},yyyyMMdd))

Mysql:可以使用cast函数和date_format来实现完成 Mapper中写法 方法一:

cast(date_format(table_name.date,%Y%m%d%H:%i:%S) as SIGNED   INTEGER ) &gt;= cast(date_format(#{日期},%Y%m%d%H:%i:%S)as SIGNED   INTEGER )

方法二:

and DATE_FORMAT(`erms_apply_exp`.`submit_date`, %Y-%m-%d) <![CDATA[ >= ]]> DATE_FORMAT(#{startDate}, %Y-%m-%d)
and DATE_FORMAT(`erms_apply_exp`.`submit_date`, %Y-%m-%d) <![CDATA[ <= ]]> DATE_FORMAT(#{endDate}, %Y-%m-%d)
经验分享 程序员 微信小程序 职场和发展