Wednesday, 12 July 2017

Convert java.util.Date to java.sql.Date




I am trying to get date in my database that have format like this "dd/MM/yyyy" and compare them to get latest date..



I was surprised to find that it couldn't do the conversion implicitly or explicitly - but I don't even know how I would do this, as the Java API is still fairly new to me. Any suggestions? It seems like this should be an easy feat to accomplish.



from String last_updatedArr[]'s array result :



12/11/2015
12/11/2015
12/11/2015
12/11/2015

12/11/2015
13/11/2015


Method:



public String latestDate(){

String last_updated=null;
try {

String last_updatedDb=null;

String query = "SELECT Last_updated FROM Mattress";
PreparedStatement pst = conn.prepareStatement(query);

ResultSet rs= pst.executeQuery();

String last_updatedArr[]=new String[100];
while(rs.next()){
int i = 0;

last_updatedDb=rs.getString("Last_updated");
System.out.println(last_updatedDb);
last_updatedArr[i]=last_updatedDb;
i++;
}

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
java.sql.Date date1,date2;
for(int i =0;i

date1 = (java.sql.Date)sdf.parse(last_updatedArr[i]);
date2 = (java.sql.Date)sdf.parse("1/1/2010");

if(date1.after(date2)){
//Date1 is after Date2
last_updated= sdf.format(date1);
}

if(date1.before(date2)){
//Date1 is before Date2

last_updated= sdf.format(date2);
}

if(date1.equals(date2)){
//Date1 is equal Date2
last_updated= sdf.format(date1);
}
}
} catch (ParseException e) {
e.printStackTrace();

}catch (SQLException e) {
e.printStackTrace();
}
return last_updated;

}

Answer



Your loop resets i on every iteration. Move the declaration of i in your while loop. Or just use a for loop. Like,




for(int i = 0; rs.next(); i++) {
last_updatedDb = rs.getString("Last_updated");
System.out.println(last_updatedDb);
last_updatedArr[i] = last_updatedDb;
}


or something like,



int i = 0;

while(rs.next()){
// int i = 0;
last_updatedArr[i] = rs.getString("Last_updated");
System.out.println(last_updatedArr[i]);
i++;
}

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
java.sql.Date date1,date2;
// reuse i from while loop...

for(i = 0; i < last_updatedArr.length; i++){

No comments:

Post a Comment

casting - Why wasn&#39;t Tobey Maguire in The Amazing Spider-Man? - Movies &amp; TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...