Как импортировать дату как 2009-12-05 11:40:00 в SQL через CSV? - PullRequest
0 голосов
/ 23 декабря 2009

Я использую Мастер импорта / экспорта, чтобы импортировать некоторые данные в таблицу. Всего 2 строки, так что я только что работал над этим, но я хотел бы знать ответ.

Проблема с импортом / экспортом связана с датами. Что бы я ни делал, они терпят неудачу. Дата выглядит довольно просто для меня: 2009-12-05 11:40:00. Я также попробовал: 2010-03-01 12:00 PM. Пробовал DT_DATE и DT_DBTIMESTAMP в качестве типа данных источника. Тип столбца назначения - дата и время.

Сообщение, которое я получаю:

Преобразование данных для столбца «Start_Date» вернул значение состояния 2 и текст статуса "Значение не может быть преобразованным из-за потенциала потеря данных. ".

Как мне это исправить? Почему мастер импорта / экспорта так плохо разбирает даты (или это в моем воображении)?

Действительно неприятная вещь в том, что когда вы выбираете столбец даты из таблицы и сохраняете его в формате CSV, вы получаете дату, например «2009-12-05 11:40 AM». Таким образом, мастер импорта даже не способен анализировать даты, поступающие с SQL Server. В самом деле? В самом деле?

1 Ответ

1 голос
/ 23 декабря 2009

Добавлены детали (понял, что мое описание было неверным после повторного просмотра пакета, с которым у меня были проблемы):

Импорт очень плохой.

В моем случае у меня были входящие данные с формой, соответствующей SQL Server типа 126 / ISO8601. То есть в T-SQL эта форма:

select convert ( varchar(100), getdate(), 126 )

--> 2009-12-22T16:29:22.123

Мне удалось импортировать через SSIS, используя два шага:

  1. Заменить "T" пробелом "", используя производный столбец служб SSIS с выражением:

    ЗАМЕНА (DateColumn, "T", "")

  2. Приведите результат к метке времени базы данных [DT_DBTIMESTAMP], используя преобразование преобразования данных

Извинения, если я вызвал замешательство.

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