java获取当前日期 前后 几个月的 日期期间
需要原因 返回的String 格式
private Map<String,String> getDuringDate(){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String returnEndDate = simpleDateFormat.format(date);
Date parse = null;
try {
parse = simpleDateFormat.parse(returnEndDate);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance(); //得到日历
Map<String,String> returnMap = new HashMap<>();
//把当前时间赋给日历
if (parse!=null){
calendar.setTime(parse);
//设置为前2月 三个月 -3
calendar.add(calendar.MONTH, -2);
//获取2个月前的时间
Date startDate = calendar.getTime();
String returnStartDate = simpleDateFormat.format(startDate);
returnMap.put("startDate",returnStartDate);
returnMap.put("endDate",returnEndDate);
}
Mapper.xml
<select id="getCompleteOrderShopId" resultMap="java.util.List">
SELECT
a.shop_id
FROM
xquark_user a
INNER JOIN xquark_order b ON a.id = b.buyer_id
INNER JOIN xquark_order_item c ON b.id = c.order_id
WHERE
a.archive = FALSE
AND b.archive = FALSE
AND c.archive = FALSE
AND b.STATUS = 'SUCCESS'
AND c.amount > 5
AND Date( succeed_at ) BETWEEN #{startDate} AND #{endDate}
AND a.shop_id in
<foreach item="item" collection="shopIdList" separator="," open="(" close=")" index="">
#{item, typeHandler=idHandler}
</foreach>
GROUP BY
a.shop_id
</select>