У меня есть текстовое поле для ввода даты в формате dd-mm-yyyy, теперь, как я могу вставить эту дату в MySQL в формате yyyy-mm-dd. Я пишу код для JDBC.Я ввел дату через JDBC, магазины MySQL в другой форме
String effecteddate=jtextField1.getText();
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date myDate = formatter.parse(effecteddate);
java.sql.Date sqlDate = new java.sql.Date(myDate.getTime());
int x=st.executeUpdate("insert into virus values('"+sqlDate+"')");
Я вошел в эту дату 12.05.2010, код выполняется без какого-либо сообщения об ошибке и успешной вставки отображается, но когда я проверил в MySQL таблице я нашел дату в этом форм-0017-10-31
Что такое проблема?
В вашей базе данных, что тип данных столбца вы пытаться вставить? Также, похоже, вы вводите недопустимую дату. Правильно? Разве это не должно быть 2010-12-05? – Sh4d0wsPlyr
Вы ввели дату как строку '' 12-05-2010 '', но использовали формат '' yyyy-MM-dd'''? Это кажется неправильным, и я надеюсь, что ваш код выведет на него ошибку. Кроме того, * никогда, никогда, никогда не используйте конкатенированные строки для размещения значений в вашем SQL. Он просто запрашивает проблемы (уязвимости SQL-инъекций). – jpmc26
@ Sh4d0wsPlyr Добавил ваше наблюдение к моему ответу. – Andreas