Ошибка str_to_date в MySQL (Java)

У меня есть следующее значение столбца, который я преобразую и храню в другом столбце

Nov 22 2014 00:00:00 AM

Теперь я использую следующий запрос, чтобы преобразовать его в формат даты и сохранить в другом столбце

UPDATE DataNov2014 SET Datee = str_to_date(Date,'%d %b %Y %H:%i:%s');

Но я получаю следующее исключение

Исключение в потоке "main" java.sql.SQLException: неправильное значение даты и времени: '22 ноября 2014 00:00:00 AM' для функции str_to_date

Есть ли ошибка в моем формате запроса / даты?
Любая помощь будет оценена, спасибо

3 ответа

Предполагает ваше поле Datee тип данных Datetime

ОБНОВЛЕНИЕ DataNov2014 SET Datee = str_to_date("22 ноября 2014 г., 00:00:00", "%M %d %Y %H:%i:%s");

Ты это

UPDATE DataNov2014 SET Date= to_char(Date,'mon dd yyyy mm:ss:hh');

Я предлагаю вам использовать PreparedStatement и Date параметр связывания. Также вы можете использовать try-with-resources, Собираем все вместе, что-то вроде

String sql = "UPDATE DataNov2014 SET Datee = ?";
DateFormat sdf = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss");
try (PreparedStatement ps = conn.prepareStatement(sql)) {
    Date theDate = sdf.parse("11-22-2014 00:00:00");
    ps.setDate(1, new java.sql.Date(theDate.getTime()));
    int count = ps.executeUpdate();
    if (count > 0) {
        System.out.printf("Query updated %d rows.%n", count);
    } else {
        System.out.println("Query didn't update any rows");
    }
} catch (Exception e) {
    e.printStackTrace();
}
Другие вопросы по тегам