@RequestParam(value = "startTime", required = false) Date startTime,
@RequestParam(value = "endTime", required = false) Date endTime
@RequestParam(value = "startTime", required = false) String startTime,
@RequestParam(value = "endTime", required = false) String endTime
List<EmsLoginLog> emsLoginLogList = emsLoginLogService.findAllLogByStrTime(startTime,endTime);
List<EmsLoginLog> findAllLogByTime(
@Param("startTime") Date startTime,
@Param("endTime") Date endTime
List<EmsLoginLog> findAllLogByStrTime(
@Param("startTime") String startTime,
@Param("endTime") String endTime
@Override
public List<EmsLoginLog> findAllLogByTime(Date startTime, Date endTime) {
return emsLoginLogDao.findAllLogByTime(startTime,endTime);
@Override
public List<EmsLoginLog> findAllLogByStrTime(String startTime, String endTime) {
return emsLoginLogDao.findAllLogByStrTime(startTime,endTime);
<select id="findAllLogByTime" resultMap="EmsLoginLogMap">
select info_id, user_name, ipaddr, status, msg, login_time from ems_logininfor
-- WHERE date_format(login_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
-- and date_format(login_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d')
-- and login_time >= #{startTime} and login_time <= #{endTime}, jdbcType = TIMESTAMP
<where>
<if test="startTime !=null">
and login_time >=#{startTime}
<if test="endTime != null">
and login_time <=#{endTime}
</where>
</select>
<select id="findAllLogByStrTime" resultMap="EmsLoginLogMap">
select info_id, user_name, ipaddr, status, msg, login_time from ems_logininfor
<where>
<if test="startTime !=null">
and login_time >=to_date(#{startTime}, 'yyyy-MM-DD')
<if test="endTime != null">
and login_time <=to_date(#{endTime}, 'yyyy-MM-DD')
</where>
</select>
http://localhost:8181/treps/a/ems/findAllLog?startTime=2022-04-11&endTime=2022-04-12
采用Date类型接收数据如下:
mybatis错误如下:
随后就会报错
将xml文件中使用idea的注释快捷键的ctrl+/部分删除或者选择使用xml的注释
<select id="findAllLogByTime" resultMap="EmsLoginLogMap">
select info_id, user_name, ipaddr, status, msg, login_time from ems_logininfor
将以下字段更换为xml专用注释或者删除,问题解决。-->
-- WHERE date_format(login_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
-- and date_format(login_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d')
-- and login_time >= #{startTime} and login_time <= #{endTime}, jdbcType = TIMESTAMP
<where>
<if test="startTime !=null">
and login_time >=#{startTime}
<if test="endTime != null">
and login_time <=#{endTime}
</where>
</select>
结果应为:
<select id="findAllLogByTime" resultMap="EmsLoginLogMap">
select info_id, user_name, ipaddr, status, msg, login_time from ems_logininfor
<where>
<if test="startTime !=null">
and login_time >=#{startTime}
<if test="endTime != null">
and login_time <=#{endTime}
</where>
</select>
WHERE date_format(login_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
and date_format(login_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d')
and login_time >= #{startTime} and login_time <= #{endTime}, jdbcType = TIMESTAMP
<select id="findAllLogByTime" resultMap="EmsLoginLogMap">
select info_id, user_name, ipaddr, status, msg, login_time from ems_logininfor
<where>
<if test="startTime !=null">
and login_time >=#{startTime}
<if test="endTime != null">
and login_time <=#{endTime}
</where>
</select>
最终返回结果应和String类型返回结果类似。
String类型是接收String类型的数据之后,再从mybatis转换成Date 类型。
#总结
此次根据时间筛选查询记录主要就是xml注释一定不要用快捷键,最终还是解决了问题,这下子用Date或者String类型接收都可以了。
在此记录自己的问题与大家分享。
直接上代码测试类public class TestData {public static void main(String[] args) {List list = new ArrayList<>();list.add(new TsData("11","08",11111l));list.add(new TsData("11","080405",22222l));list.add(ne...
基于Java语言编写的Spring Boot时间工具类方法封装,主要方法如下:根据日期获取该日期内24小时的整点时刻、获取当月的 天数、根据 年、月 获取对应的月份 的 天数、根据指定日期得获取对应月份的所有日期的每日结束时间、根据指定日期得获取对应月份的所有日期、获取所在月的最后一天、获取本月 当前的日期、根据指定日期得获取对应年份的所有月的日期、获取月初时间、获取月末时间、获取当天的起始时间、获取当天的结束时间、获取昨天的开始时间、获取昨天的结束时间、当前季度的开始时间、当前季度的结束时间、从开始时间到结束时间,每隔n分钟获取一个时间点;适用人群:Java编写工具类能力较差人员;帮助大家节省时间减少开发成本
JAVA实现按时间段查询数据操作的方法发布时间:2020-08-17 09:56:01来源:亿速云阅读:161作者:小新小编给大家分享一下JAVA实现按时间段查询数据操作的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!html / jsp开始时间:结束时间:js方法:function timeCheckInfo(page,startTime,endTime,officeVal...
怎么优雅地,不添加冗余字段的情况下完成时间检索?可以参考若依中的处理方式在若依框架中,所有实体类Class都可以去集成超级父类 ->BaseEntity代码可以看到, 这里面有一堆的通用参数,包括createBy,createTime,updateBy,updateTime也在其中而这里有一个我们需要关注的参数:这个参数我们可以让前端以key-value的形式传给我们,然后我们可以将其中数据提取出来比如"时间检索"我们就可以这样用。
html / jsp开始时间:结束时间:js方法:function timeCheckInfo(page,startTime,endTime,officeVal){var startTime=$("#startTime").val();var endTime=$("#endTime").val();$.ajax({url: "../../security/base/peoplesafeimg!...