Как получить только день с даты, хранящейся в базе данных в Java?
Я могу получить полную дату всех записей, но я хочу получить только день каждой записи. Например, у меня дата 2017-01-20, но я хочу получить только 20. Как мне это сделать? Вот мой код:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(calendar.getDate());
String sql = "SELECT reserve_date FROM reservation";
try
{
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
text.setText("");
while(rs.next()){
String str = rs.getString("reserve_date");
text.append(str);
text.append("\n");
}
pst.close();
rs.close();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
finally{
try{
rs.close();
pst.close();
}catch(Exception e){JOptionPane.showMessageDialog(null, e);}
}
2 ответа
Решение
Вы можете использовать функцию MySQL DAYOFMONTH
лайк
String sql = "SELECT DAYOFMONTH(reserve_date) FROM reservation";
А потом либо
String str = rs.getString(1);
или же
int dayOfMonth = rs.getInt(1);
ТЛ; др
myResultSet.getObject( reserve_date , LocalDate.class ) // Retrieve `LocalDate` object from database.
.getDayOfMonth() // Extract an integer for day-of-month number.
подробности
Ответ Фриша правильный. Другой маршрут - через библиотеку java.time.
Выбрать из базы данных, используя объекты, в частности java.time.LocalDate
объект. Допрос для дня месяца.
LocalDate ld = myResultSet.getObject( reserve_date , LocalDate.class ) ;
int dayOfMonth = ld.getDayOfMonth() ;