数据库中的时间的比较

例如:查询 三天内的记录和一周内的记录以及一个月内的记录

1、如果数据库中存储的是date类型
第一种方法:将数据库中的时间转换为date类型和当前系统时间进行比较

//开始日期
Date date = new Date();
//结束日期
Date date2 = null;
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
//最近三天
if(0 == publicDate){
calendar.set(year, month, day – 2);
date2 = calendar.getTime();
//最近一周
}else if(1 == publicDate){
calendar.set(year, month, day – 6);
date2 = calendar.getTime();
//最近一个月
}else if(2 == publicDate){
calendar.set(year, month – 1, day);
date2 = calendar.getTime();
}
queryWhere.append(” and job.send_time <=”).append(“to_date(‘”).append(timeFormat.format(date)+”‘”).append(“, ‘yyyy-MM-dd’)”);
queryWhere.append(” and job.send_time >=”).append(“to_date(‘”).append(timeFormat.format(date2)+”‘”).append(“, ‘yyyy-MM-dd’)”);

第二种方法:将数据库中的时间转换为字符串类型和当前系统时间进行比较

//开始日期
Date date = new Date();
//结束日期
Date date2 = null;
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
//最近三天
if(0 == publicDate){
calendar.set(year, month, day – 2);
date2 = calendar.getTime();
//最近一周
}else if(1 == publicDate){
calendar.set(year, month, day – 6);
date2 = calendar.getTime();
//最近一个月
}else if(2 == publicDate){
calendar.set(year, month – 1, day);
date2 = calendar.getTime();
}
queryWhere.append(” and to_char(job.send_time,’yyyy-MM-dd’) <=”).append(“‘”+timeFormat.format(date)+”‘”);
queryWhere.append(” and to_char(job.send_time,’yyyy-MM-dd’) >=”).append(“‘”+timeFormat.format(date2)+”‘”);

2、如果数据库中存储的是TIMESTAMP类型

只能使用上面的第二种方法进行查询

发表评论

电子邮件地址不会被公开。 必填项已用*标注