java web查询某个时间段记录

时间:2022-05-02 11:13:15

       在做java web过程中,我们有的时候要查询最近一段时间用户的日志状况,如最近一周,最近一个月,这里面就牵扯到根据系统当前时间获取一个周以前、一个月以前....的时间。下面来讲讲操作过程。

      1.获取系统时间

      主要利用java.util.Calendar提供的Calendar类。首先根据Calendar ca = Calendar.getInstance();获取系统当前日历

     (1)int year=ca.get(ca.YEAR)可以获取当前的年份;

     (2)int month=ca.get(ca.MONTH)+1;由于calendar中月份是从0开始计算的,为了和日常月份对应,必须给月份加1.

     (3)int day=ca.get(ca.DAY_OF_MONTH);这样可获取当前处于月份的哪一天。

       现在假设我们要知道10天以前是哪一天,这个时候我们只需要使用ca.add(Calendar.DAY_OF_MONTH, -10);便可获取10天以前的日历。

       接着我们采用以上相同的方法便可获取10天以前的日期。

      2.mysql查询时间段

      假设日志有个signTime(Date类型)字段,记录的是签到时间,我们现在要获取近10天的签到记录,这个时候我们可以利用上面的方法,然后通过字符串拼接,拼接成类似于'2015-1-4'这样的日期格式,这样可以获得起始时间(10天以前的时间)startDate和终止时间endDate(当前时间)。

     这样子,我们只需要获取signTime处于startDate和endDate之间的签到记录即可。具体的查询sql条件为

     "select * from ..  where signTime between  #{startDate} and  #{endDate}"即可。