我尝试使用java来比较存储在mysql表列中的日期和当前日期。
我想检查日期是否超过存储在数据库表中的日期3天,它显示错误...
这是我的代码:
public static void main(String[] args) {
Connection con=null;
ResultSet rs=null;
String url="jdbc:mysql://localhost:3306/EDUCATION_MANAGEMENT";
try
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date crrDate=new Date();
crrDate=sdf.parse(sdf.format(crrDate));
Date dbDate=new Date();
System.out.println("Current Date ::: "+crrDate);
String userid="root";
String password="admin";
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection(url,userid,password);
Statement stmt=con.createStatement();
String getDate="select t_create_date from student_account where stud_id=100";
rs=stmt.executeQuery(getDate);
if(rs.next())
{
dbDate=sdf.parse(rs.getString("t_create_date"));
System.out.println("Database Date ::: "+dbDate);
}
if(crrDate.compareTo(dbDate)>3)
{
System.out.println("Date is less than 3");
}
else
{
System.out.println("Date is Greater than 3");
}
}
catch(SQLException sqle)
{
System.out.println("Error occured ::: "+sqle);
}
catch(Exception e)
{
System.out.println("Error occured ::: "+e);
}
}
请告诉我代码......
答案 0 :(得分:0)
Mysql有很好的日期功能,你可以运行
select t_create_date < now() - interval 3 day as more_than_3_days_ago
from student_account
where stud_id=100
然后只需获取布尔值more_than_3_days_ago,这就是你的答案。
答案 1 :(得分:0)
据我所知,安德烈亚斯&#39;答案将满足您的目的。如果要在java中执行此操作,则必须将数据提取为Date Object
rs.getDate("DATE_COLUMN")
并进行比较。
您可能会发现Joda Time对于比较非常有用。