Вставка даты через 1 год в столбец даты mysql

У меня есть столбец в таблице mysql типа Date с именем expiryDate.

Я хочу получить дату через год и вставить ее в столбец expiryDate.

Я получаю дату через 1 год:

import org.joda.time.LocalDate;

// expires 1 year fron now
LocalDate localDate = LocalDate.now();
LocalDate yearLater = localDate.plusYears ( 1 );

Я получаю сообщение об ошибке при попытке вставить:

Incorrect date value: '\xAC\xED\x00\x05sr\x00\x17org.joda.time.LocalDate\xFF\xFF\xF8\x04\xD3\xE4\xEB\xB5\x02\x00\x02J\x00\x0CiLocalMillisL\x00\x0BiChro' for column 'expiryDate'

arguments:{ positional:{}, named:{expiryDate:2019-02-01,balance:50,orderId:761...

Что я делаю не так?


person Mark    schedule 01.02.2018    source источник
comment
Вы должны преобразовать дату joda в формат, понятный драйверу MySQL. Но вы не упомянули, что вы делаете до возникновения ошибки (как вы получаете доступ к БД).   -  person Ján Halaša    schedule 01.02.2018
comment
Пожалуйста, покажите код Java с оператором вставки. Кажется, что он пытается вставить результат Object.toString() в базу данных вместо отформатированной строки даты.   -  person Axel Amthor    schedule 01.02.2018


Ответы (2)


В MySQL вы можете использовать DATE_ADD с INTERVAL 1 YEAR

SELECT NOW(), DATE_ADD(NOW(),INTERVAL 1 YEAR);

>Демо‹‹

person Ravi    schedule 01.02.2018

Использование Java 8:

Calendar cal = Calendar.getInstance();
cal.add(Calendar.YEAR, 1);

У него не будет проблем с драйвером MySQL.

person Pratyush Pranjal    schedule 01.02.2018