Я пытаюсь вставить дату datepicker html5 в таблицу Oracle, имеющую дату данных, я пробовал так много вещей, но я все еще сталкиваюсь с проблемой, PLZ помогите мне решить проблему.
static int addNotification(String date,String message)
{
int i=0;
try {
ps=con.prepareStatement("INSERT into ev values(?,to_date(?,'DD-MON-YYYY'))");
ps.setString(1, message);
DateFormat originalFormat = new SimpleDateFormat("yyyyMMdd");
DateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date dt = originalFormat.parse(date);
String formattedDate = targetFormat.format(dt);
System.out.println(formattedDate);
ps.setString(2, formattedDate);
// ps.setDate(2,formattedDate);
i=ps.executeUpdate();
}
каждый раз, когда я вношу изменения, я получаю новое исключение для ex.
java.sql.SQLException: ORA-01861: литерал не соответствует строке формата
java.text.ParseException: уникальная дата ("YYYY-MM-DD")
PLZ помочь мне решить эту проблему.
если вы хотите преобразовать дату, то используйте,
DateFormat originalFormat = new SimpleDateFormat("yyyyMMdd");
если бы не предлагалось, чтобы вы не записывали данные html 5 datepickers напрямую, я бы предпочел преобразовать их с помощью javascript и отправить его в ответ.
пройти через класс даты: -
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
Вы можете использовать PreparedStatement.setDate(int parameterIndex,Date x)
следующим образом.
try {
ps=con.prepareStatement("INSERT into ev values(?,?)");
ps.setString(1, message);
DateFormat originalFormat = new SimpleDateFormat("yyyyMMdd");
java.util.Date dt = originalFormat.parse(date);
ps.setDate(2,dt);
i=ps.executeUpdate();
}