Как установить текущую дату в столбец даты 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 объект), как это происходит от него.

Другие вопросы по тегам