如何从月份数据库中获取最近六个月的数据

时间:2016-08-12 07:18:11

标签: java mysql rest spring-boot spring-data-jpa

我尝试使用日历瞬间和循环播放

for(int i = 6; i >= 0; --i){
    GraphDto graphDto=new GraphDto();

    Calendar c2=Calendar.getInstance();
    c2.add(Calendar.MONTH,-i);
    c2.set(Calendar.DAY_OF_MONTH, 1);

    graphDto.setLabel(getMonth(c2.get(Calendar.MONTH)));

    Date fromDate1=c2.getTime();
    c2.set(Calendar.DAY_OF_MONTH;
    c2.getActualMaximum(Calendar.DAY_OF_MONTH));

    Date toDate1=c2.getTime();
    Double value1=billHistoryRepository.findAmount(fromDate1,toDate1);
    Double value2=paymentHistoryRepository.findAmount(fromDate1,toDate1);
    c2.add(Calendar.MONTH,1);

    if(value1!=null) {
        graphDto.setValue1(value1);
    }
    if(value2!=null) {
        graphDto.setValue2(value2);
        graphDtoList.add(graphDto);
    }
}

需要花费太多时间并反复调用存储库。有没有其他方法可以找到,比如jdbc查询或其他什么

1 个答案:

答案 0 :(得分:0)

我顺便说一句..

选择DATE_FORMAT(created_date,'%M%Y')作为月,从bill_history group by month(created_date)limit 6中选择总和(金额);

结果将是

月|总和(金额)

2016年6月| 129388

2016年7月| 22723419

2016年8月| 525004.4