sql计算:
--一月前
select DATE_SUB(CURDATE(), INTERVAL 1 Month) as monthTime;
--一天前
select DATE_SUB(CURDATE(), INTERVAL 1 DAY) as dayTime;
--一年前
select DATE_SUB(CURDATE(), INTERVAL 1 YEAr) as newField;
--指定日期三天前
SELECT DATE_SUB('2018-07-6', INTERVAL 3 DAY) AS newField;
---指定日期 3年2个月前
SELECT DATE_SUB('2019-06-02', INTERVAL '3-2' YEAR_MONTH) AS newField;
SELECT DATE_SUB('2011-09-14 2:44:36', INTERVAL '2:26' HOUR_MINUTE) AS newField;
java计算:
package com.puyitou.cm.service.juyuan.constants;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
/**
* 功能描述:有关计算日期工具类
*
* @author
* @date 2020年10月21日
*/
public class DateUtil {
/**
* 获取日期
*
* @param month
* @return
* @author
*/
public String gettime(int month) {
//当前时间
Date dNow = new Date();
Date dBefore = new Date();
// 得到日历
Calendar calendar = Calendar.getInstance();
// 把当前时间赋给日历
calendar.setTime(dNow);
// 设置为前3月
calendar.add(Calendar.MONTH, -month);
// 得到前3月的时间
dBefore = calendar.getTime();
SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd");
return dateFormater.format(dBefore);
}
/**
* 获取当前年月日期
*
* @return
* @author
*/
public String getcurrentYear() {
Date d = new Date();
SimpleDateFormat sf = new SimpleDateFormat("yyyy");
String year = sf.format(d);
return year + "-01";
}
/**
* 封装参数,分别获取到用户在页面切换的日期
*
* @param paramMap
* @return
* @author
*/
public Map<String, Object> setParam(Map<String, Object> paramMap) {
String dateDuring = String.valueOf(paramMap.get("dateDuring"));
if ("1".equals(dateDuring)) {
// 获取一个月以前的日期
paramMap.put("startDate", gettime(1));
} else if ("2".equals(dateDuring)) {
// 获取三个月以前的日期
paramMap.put("startDate", gettime(3));
} else if ("3".equals(dateDuring)) {
// 获取一年的日期
paramMap.put("startDate", gettime(12));
} else if ("4".equals(dateDuring)) {
// 获取半年的日期
paramMap.put("startDate", gettime(6));
} else if ("5".equals(dateDuring)) {
// 获取成立以来的日期
} else {
//获取今年以来的
paramMap.put("startDate", getcurrentYear());
}
return paramMap;
}
}
浙公网安备 33010602011771号