获取(今日、本周、本月、本年)的方式

本文介绍两种日期范围查询方法:一种是在MySQL中通过SQL语句实现今日、本周、本月及本年的查询;另一种是在Java中使用代码判断指定日期是否为当前日期、当前周或当前月,并提供了获取指定日期上一年同月的方法。

方式一:mysql中sql语句查询

### TODAY:今日  THISWEEK:本周 THISMONTH:本月 THISYEAR:本年
<if test="scopeTypeEnum =='TODAY' ">
			AND DATE_FORMAT(ode.create_time ,'%Y%m%d')  = DATE_FORMAT(NOW()  ,'%Y%m%d')
		</if>
		<if test="scopeTypeEnum =='THISWEEK' ">
			AND DATE_FORMAT(ode.create_time ,'%x%v')  = DATE_FORMAT(NOW()  ,'%x%v')
		</if>
		<if test="scopeTypeEnum =='THISMONTH' ">
			AND DATE_FORMAT(ode.create_time ,'%Y%m')  = DATE_FORMAT(NOW()  ,'%Y%m')
		</if>
		<if test="scopeTypeEnum =='THISYEAR' ">
			AND DATE_FORMAT(ode.create_time ,'%Y')  = DATE_FORMAT(NOW()  ,'%Y')
		</if>

方式二:java代码中方法

    /**
     * 判断日期是否是当天
     * @param date
     * @return
     */
    private boolean isToday(LocalDateTime date){
        String currentDate = DateUtil.format(DateUtil.date(), DateTimeFormatter.ISO_LOCAL_DATE);
        String paramDate = DateUtil.format(date, "yyyy-MM-dd");
        return ObjectUtil.equals(currentDate,paramDate);
    }

	/**
     * 判断日期是否是本周
     * @param date
     * @return
     */
    private boolean isThisWeek(LocalDateTime date){
        DateTime currentDateTime = DateUtil.date();
        java.util.Date paramDate = Date.from(date.atZone(ZoneId.systemDefault()).toInstant());
        int currentWeek = DateUtil.weekOfMonth(currentDateTime);
        int currentMonth = DateUtil.month(currentDateTime)+1;
        int paramWeek = DateUtil.weekOfMonth(paramDate);
        int paramMonth = DateUtil.month(paramDate)+1;
        return currentMonth ==paramMonth && currentWeek==paramWeek;
    }

	/**
     * 判断日期是否是本月
     * @param date
     * @return
     */
    private boolean isThisMonth(LocalDateTime date){
        DateTime currentDateTime = DateUtil.date();
        java.util.Date paramDate = Date.from(date.atZone(ZoneId.systemDefault()).toInstant());
        int currentMonth = DateUtil.month(currentDateTime)+1;
        int paramMonth = DateUtil.month(paramDate)+1;
        return currentMonth ==paramMonth;
    }

    /**
     * 获取传入时间的上一年同月
     * @param date 2022-11 ->2021-11
     * @return
     */
    private String getLastDate(String date){
        DateTime parse = DateUtil.parse(date,"yyyy-MM");
        DateTime dateTime = DateUtil.offset(parse, DateField.YEAR, -1);
        return DateUtil.format(dateTime, "yyyy-MM");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值