查询数据库最近一周每天的数据的方法
来源:互联网 发布:spss数据标准化公式 编辑:程序博客网 时间:2023/09/28 02:16
这里以 查询 keep app 用户 最近一周 每天训练时间的 例子为例
训练时间单位为:min 如图
实体类
CourseMemberDO{
private int minutes;//训练的时间
private Date createDate;//训练的日期}
时间工具类:
DateUtils1---------------------针对第一种方法
public class DateUtils {
* 获取当前周每天的开始时间 * * @param * @return */public static List<String> appendBeginDate() { List<String> beginDateStrs = new ArrayList<>(); for (String str : getWeekdays()) { String str1 = str + " " + "00:00:00"; beginDateStrs.add(str1); } return beginDateStrs;}/** * 获取当前周每天的结束时间 * * @return */public static List<String> appendEndDate() { List<java.lang.String> endDateStrs = new ArrayList<>(); for (java.lang.String str : getWeekdays()) { java.lang.String str1 = str + " " + "24:00:00"; endDateStrs.add(str1); } return endDateStrs;}
Dateutils2---------针对第二种方法
public class DateUtils {
// 获得本周一与当前日期相差的天数public static int getMondayPlus() { Calendar cd = Calendar.getInstance(); int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK); if (dayOfWeek == 1) { return -6; } else { return 2 - dayOfWeek; }}
查询数据库层 你懂得 自己写很基本的;、// 获得当前周 周一 的日期
public static Date star() { int mondayPlus = getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus); Date monday = currentDate.getTime(); return monday;}// 获得当前周 周日 的日期public static Date end() { int mondayPlus = getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 6); Date monday = currentDate.getTime(); return monday;}
实现 的 第一种方法 (每周的每天的0-24时查询数据库获取每天的训练总时间(查7次))
获取每周每天的起始时间List<Integer> minuteList = new ArrayList<>();List<String> beginDateStrs = DateUtils.appendBeginDate();List<String> endDateStrs = DateUtils.appendEndDate();遍历获取每天对应的学习情况for (int i = 0; i < 7; i++) { int minutes = 0; SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Query query = new Query(); Criteria criteria = new Criteria(); criteria.and("memberId").is(memberInfoDO.getMemberId()); try { Date beginDate=simpleDateFormat.parse(beginDateStrs.get(i)); Date endDate=simpleDateFormat.parse(endDateStrs.get(i)); criteria.and("createDate").gte(beginDate).lte(endDate); } catch (Exception e) { e.printStackTrace(); } query.addCriteria(criteria); List<CourseMemberDO> list = mongoTemplate.find(query, CourseMemberDO.class); for (CourseMemberDO courseMemberDO : list) { minutes += courseMemberDO.getMinutes(); } minuteList.add(minutes);}
实现 的 第二种方法 (直接查出7天的数据再根据每天 整合出每天的训练总时间(查询一次数据库))
Query query=new Query();Criteria criteria=new Criteria();criteria.and("memberId").is(memberInfoDO.getMemberId());criteria.and("createDate").gte(DateUtils.star()).lte(DateUtils.end());query.addCriteria(criteria);Calendar cal = Calendar.getInstance();List<CourseMemberDO> list =mongoTemplate.find(query, CourseMemberDO.class); Integer[] minuteList={0,0,0,0,0,0,0};for(CourseMemberDO courseMemberDO : list){ cal.setTime(courseMemberDO.getCreateDate()); int w=cal.get(Calendar.DAY_OF_WEEK); switch (w){ case 1: minuteList[6]+=courseMemberDO.getMinutes(); break; case 2: minuteList[0]+=courseMemberDO.getMinutes(); break; case 3: minuteList[1]+=courseMemberDO.getMinutes(); break; case 4: minuteList[2]+=courseMemberDO.getMinutes(); break; case 5: minuteList[3]+=courseMemberDO.getMinutes(); break; case 6: minuteList[4]+=courseMemberDO.getMinutes(); break; case 7: minuteList[5]+=courseMemberDO.getMinutes(); break; }}apiMsgVO.setMessage(ApiMsgVO.REQUEST_SUCCESS_MESSAGE);apiMsgVO.setData(minuteList);return apiMsgVO;
此致敬礼!!!!!
实现 的 第一种方法 (每周的每天的0-24时查询数据库获取每天的训练总时间(查7次))
实现 的 第一种方法 (每周的每天的0-24时查询数据库获取每天的训练总时间(查7次))
阅读全文
0 0
- 查询数据库最近一周每天的数据的方法
- MySQL数据库yyyy-MM-dd HH:mm:ss格式查询最近一周内每天的记录
- SQLServer 查询最近一天,三天,一周,一月,一季度数据的方法
- 根据时间查询最近一周时间内的数据库
- mysql 查询当天、最近一天、最近一周,本月,上一个月的数据
- mysql 查询当天、最近一天、最近一周,本月,上一个月的数据
- Mysql查询最近30天的数据(每天的业绩总和数据)
- MYSQL查询一周内的数据(最近7天的)怎么写
- 怎么查询数据库每天的数据增量和访问量?
- 每天一点数据库之-----Day 4 数据的简单查询
- 查询最近三个月的数据
- mysql查询每天每周每月每年的数据方法
- MYSQL最近一周一个月时间段的查询语句
- 查询最近7天的每天的注册人数
- [数据库资料] SQLServer查询最近一天,三天,一周,一月,一季度方法
- PHP查询数据库显示数据的方法
- 各种数据库查询前几条数据的方法
- 各种数据库查询前几条数据的方法
- 使用VirtualBox虚拟机安装Ubuntu
- u盘启动盘制作工具哪个最好用?
- 04 WebGL 着色器编程语言GLSL ES的矢量和矩阵
- 函数的调用约定(_cdecl,_stdcall,_fastcall,_pascal)
- JSONP
- 查询数据库最近一周每天的数据的方法
- HDU 4864 Task
- Java集合框架图
- 随笔:POSIX
- (译)《地平线》的玩家动作系统(1)
- Android--线程--AsyncTask
- Android开源库之使用ZBar开源库实现二维码功能
- MySQL 2表及3表查询
- cpp notes1