Как установить текущую дату в столбец даты MySQL из Java?
У меня в таблице есть столбец mysql типа DATE. Я хочу установить значение этого столбца из моего кода Java в формате ГГГГ-ММ-ДД
Я использовал следующий код для проверки этих форматов..
Calendar c = Calendar.getInstance();
c.setTime(new Date());
String d = c.YEAR+ "-"+c.MONTH+"-"+c.DATE;
Но я получаю странный вывод, если я распечатаю это значение в консоли. Пожалуйста помоги. Как еще я могу сделать это?
2 ответа
Что вам нужно сделать, это:
String d = c.get(Calendar.YEAR) + "-" + c.get(Calendar.MONTH) + "-" + c.get(Calendar.DATE)
Если я правильно помню, вы также должны добавить +1 к месяцу, так как он возвращает смещение (отсчитываемое от 0), а не просто значение месяца (что для меня глупо, но я не занимался дизайном).
Кроме того, вы можете проверить SimpleDateFormat и его возможности форматировать дату хорошим способом.
В JDBC вы можете использовать setDate()
метод установки значения DATE в подготовленном операторе, см. API PreparedStatement. Это преобразует значение в тип DATE в базе данных.
PreparedStatement prep = con.prepareStatement("some query with a DATE field");
Date d = new Date(System.currentTimeMillis());
// just an example (its the java.sql.Date class, not java.util.Date)
prep.setDate(index, d);
// ...
Чтобы вернуть этот объект java.sql.Date со значением поля DATE, используйте getDate()
метод класса ResultSet.
ResultSet res = con.executeQuery("some query with a DATE field");
Date d = res.getDate(index);
Вы можете работать с d
объект как java.util.Date
объект (как использование в Calendar
объект), как это происходит от него.