Вопрос

Я работал над миграции данных из MySQL в HSQL.

В файле данных MySQL есть много записей, где значения даты устанавливаются как '0000-00-00' и база данных HSQL бросается ниже ошибки:

"Исключение данных: недопустимый формат DateTime / Код ошибки: -3407 / состояние: 22007"

Для всех таких записей.

Я хотел бы знать, что может быть оптимальным решением для этой проблемы?

заранее спасибо

Это было полезно?

Решение

HSQLDB следует стандарту SQL и позволяет только допустимые даты. Такая дата, как «0001-01-01», была бы хорошим кандидатом на значение по умолчанию.

Независимо от метода, используемого для вставок данных, строки «0000-00-00» должны быть исправлены перед вставкой. Один из способов сделать это-использовать значение по умолчанию для целевого столбца с датой по умолчанию 2001-01-01 'и заменить строку в операторе вставки на ключевое слово по умолчанию. Например:

CREATE TABLE MYTABLE ( C1 INT, C2 DATE DEFAULT DATE'0001-01-01')
INSERT INTO MYTABLE VALUES 1, DEFAULT
INSERT INTO MYTABLE VALUES 3, '2010-08-14'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top