关于Mapper文件中日期比较

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

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

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

Mapper中写法

to_number(to_char(“时间字段”,'yyyyMMdd')) >= to_number(to_char(#{日期参数},'yyyyMMdd'))
to_number(to_char(“时间字段”,'yyyyMMdd')) <= 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 ) >= cast(date_format(#{日期},'%Y%m%d%H:%i:%S')as SIGNED   INTEGER )

方法二:

and DATE_FORMAT(`erms_apply_exp`.`submit_date`, '%Y-%m-%d') = ]]> DATE_FORMAT(#{startDate}, '%Y-%m-%d')
and DATE_FORMAT(`erms_apply_exp`.`submit_date`, '%Y-%m-%d')  DATE_FORMAT(#{endDate}, '%Y-%m-%d')

你可能感兴趣的:(数据库)