针对某一日期字段,累加/减 年月日后和某一日期字段对比(流失预警)

java中使用方法:

LocalDateTime.ofInstant(effective, ZoneId.systemDefault()).toLocalDate().plusYears(lifeTime);

  • effective: 表示日期字段
  • .plusYears()方法表示累加年,lifeTime:表示累加的值,下图可以看到还有很多的方法:月、日、周…
    在这里插入图片描述
  • 日期字段相比可以使用 .isBefore()方法,判断某一日期是否在另一日期之前。如下工具类:
package com.mycompany.myapp.web.rest.utils;

import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;

public class DateCompareUtil {
    public static boolean dateCompareTo(Instant effective, Integer lifeTime){
        LocalDate startTime = LocalDateTime.ofInstant(effective, ZoneId.systemDefault()).toLocalDate().plusYears(lifeTime);
        LocalDate endTime = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()).toLocalDate();
        return startTime.isBefore(endTime);
    }
}
Mysql中使用:

加:date_add(param1 interval num param2)
减:date_sub(param1 interval num param2)

param1:表示操作的日期字段
param2:表示操作单位:年、月、日
num: 表示增值、减值的常量

系统当前时间往后推1个月:
在这里插入图片描述
运行效果:
在这里插入图片描述
系统当前时间往前推1个月:
在这里插入图片描述
运行效果:
在这里插入图片描述
通常使用都是做流失预警:对某一日期字段进行累加,算出有效期,拿来和系统时间对比,在到期的前X周进行预流失提示。

下图表示,查询一个月后设备寿命到期的所有设备信息。
在这里插入图片描述

发布了74 篇原创文章 · 获赞 19 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_43770545/article/details/100139189