Экспортировать целое число SQLite как DateTime - PullRequest
0 голосов
/ 03 октября 2019

У меня есть база данных SQLite3. У меня также есть база данных SQL Server с той же структурой. Мне нужно экспортировать данные из SQLite и вставить их в базу данных SQL Server.

Экспорт из SQLite и модификация сгенерированного экспорта должны быть выполнены на 100% по сценарию. Вставка в базу данных SQL Server будет производиться вручную через SQL Server Management Studio.

У меня в основном хороший дамп базы данных с помощью этого ответа здесь . Я могу изменить большую часть сценария по мере необходимости с помощью sed.

. Одна вещь, на которой я сейчас застрял, состоит в том, что база данных SQLite хранит временные метки в виде количества секунд с начала UNIX. Эквивалентный столбец в SQL Server DATETIME. Насколько я знаю, вставка целого числа в DateTime не будет работать.

Есть ли способ указать, что определенные поля будут преобразованы определенным образом при выгрузке из SQLite? То есть указать, что целочисленные поля должны быть выгружены как правильные строки DateTime, которые SQL Server поймет?

Или, есть ли что-то, что я могу запустить в командной строке Linux, которая каким-то образом найдет эти временные метки Integer и преобразует их?

РЕДАКТИРОВАТЬ: Все, что выполняется в сценарии Bash в Ubuntu, является приемлемым.

1 Ответ

0 голосов
/ 03 октября 2019

Три основных решения: (1) изменить данные перед сбросом;(2) манипулировать файлом после дампа или (3) изменить данные при импорте. Выбор зависит от степени свободы изменения схем.

Если вы захотите сделать это в SQLite, я бы предложил добавить text столбцы с датами, сохраненными по мере необходимости для импорта в SQL Server. , затем проигнорируйте или удалите исходные столбцы в дампе. Может помочь страница документа SQLite для datetime(), а также ответы на этот вопрос .

Или вы можете написать функцию в SQL Server , который обрабатывает импорт. Возможно, установите его на триггер вставки.

В противном случае сценарий, управляющий файлом дампа, тоже будет работать. Похоже, вы хорошо разбираетесь в том, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...