使用java将MySql日期与系统日期进行比较

时间:2014-11-07 03:29:07

标签: java mysql

我尝试使用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);
        }


    }

请告诉我代码......

2 个答案:

答案 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对于比较非常有用。