前台用时间查询记录的问题

遇到一个问题,这里总结一下:

我做的异常日志模块,有根据时间查询日志记录的问题,一开始我考虑日志一般都是具体到时分秒的,查询时时间选择器的组件用日期加时间的比较合适,后来需求说,一般不管你后台存的数据是不是具体到时分秒,前台查询用的都是日期,于是我将日期时间选择器改成了日期选择器,这里我们用的前端框架是layui。

然后就出现了一个问题,时间范围一般是2018-08-23 ~ 2018-08-25形式,当前后选择的是同一天

(比如2018-08-23 ~ 2018-08-23)时,本来是想查询23号的数据,但是却显示没有数据。

原因在于,日期的选择时间往往是从00:00:00开始的,所以没有查出来数据合乎情理。

为了达到前后选择同一天可以查询出数据的结果,需要在后台进行处理(是经过别人指点的,哈哈)

处理方法,给前面的时间拼接 00:00:00,给后面的时间拼接 23:59:59,这样问题就解决了

这里附上我的serviceImp层的代码,注意拼接时的空格问题

public Map<String, Object> findByPage(Integer page, Integer limit, InterfaceInvokeLogVo interfaceInvokeLogVo) {
        Date beginInvokeStartTime = null; // 调用开始时间范围的起始时间
        Date endInvokeStartTime = null; // 调用开始时间范围的结束时间
        String beginInvokeStartTimeStr = "";
        String endInvokeStartTimeStr = "";

        PageHelper.startPage(page, limit);

        // 前台传过来的时间为2018-08-01 ~ 2018-08-02
        // 16:00:00,开始时间的后面有一个空格,结束时间的前面有一个空格
        String invokeStartTimeRangStr = interfaceInvokeLogVo.getInvokeStartTime();
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss ");
        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat(" yyyy-MM-dd hh:mm:ss");

        if (invokeStartTimeRangStr != null && !invokeStartTimeRangStr.equals("")) {
            beginCreateDateStr = (createDateRangStr.split("~"))[0] + "00:00:00 ";
            endCreateDateStr = (createDateRangStr.split("~"))[1] + " 23:59:59";
            try {
                beginInvokeStartTime = simpleDateFormat1.parse(beginInvokeStartTimeStr);
                endInvokeStartTime = simpleDateFormat2.parse(endInvokeStartTimeStr);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }

        interfaceInvokeLogVo.setBeginInvokeStartTime(beginInvokeStartTime);
        interfaceInvokeLogVo.setEndInvokeStartTime(endInvokeStartTime);

        Page<SysErrorLogVo> interfaceInvokeLogs = interfaceInvokeLogMapper.selectPageRecord(interfaceInvokeLogVo);
        return ResultUtil.put(ConstantUtil.REQUEST_SUCCESS, interfaceInvokeLogs.getTotal(), "",
                interfaceInvokeLogs.getResult());
    }

猜你喜欢

转载自blog.csdn.net/Sun_of_Rainy/article/details/82020522