Штамп времени службы SSIS Advantage для SQL Datetime - PullRequest
1 голос
/ 13 января 2011

Я новичок в использовании SSIS 2008 и в настоящее время работаю над переносом данных из старой базы данных Advantage в SQL Server 2005. Я установил пакет SSIS с объектом потока данных с источником и местом назначения.Копирование большинства столбцов работает отлично, но когда я пытаюсь скопировать столбцы Advantage Timestamp в поле DateTime, я получаю много ошибок.Я считаю, что все они являются ошибками переполнения, что понятно по тому, как Advantage хранит информацию о метках времени.Мой вопрос заключается в том, как лучше всего преобразовать этот столбец в правильное поле DATETIME в SQL Server 2005?

Немного подумав, я почувствовал, что могу скопировать столбец Advantage TimeStamp в столбец varchar и затем запуститьSQL скрипт, который будет делать преобразование для меня.Мне было интересно, есть ли более элегантный способ или как обычно можно решить проблему такого типа.

Спасибо за вашу помощь и предложения!

Ответы [ 2 ]

2 голосов
/ 13 января 2011

В вашем потоке данных вы можете использовать преобразование «Производный столбец», вы можете попробовать преобразовать метку времени Advantage в тип данных SQL Server DATETIME (DT_DBTIMESTAMP) (обратите внимание, что это не тип данных SQL Server TIMESTAMP.) В преобразовании «Производный столбец».добавьте новый столбец и введите следующее выражение для преобразования типа данных.

(DT_DBTIMESTAMP) [MyDate]

Если это не удастся, вы можете выполнить приведение типа к строке (DT_STR, <>, <>), а затемманипулируйте строкой, используя строковые функции, а затем введите приведение к DT_DBTIMESTAMP в одном выражении.

(DT_DBTIMESTAMP) (...string functions...(DT_STR, 20, 1252)[MyDate])
0 голосов
/ 02 февраля 2011

Timestamp является типом данных и не имеет ничего общего с данными даты или времени.

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