Мастер импорта SSMS проблема с загрузкой столбца даты CSV с датой и временем в миллисекундах

#ssms

#ssms

Вопрос:

У меня есть несколько больших файлов CSV, которые я пытаюсь импортировать в таблицу SQL Server с помощью мастера импорта ssms. Один из столбцов представляет собой столбец даты в формате гггг-мм-дд чч: ММ: сс: ххх. Я перепробовал все предлагаемые мне форматы даты в исходном поле, но в лучшем случае он дает мне полную дату с миллисекундами как .000, а не значение, которое находится в файле .txt CSV.

Единственное, о чем я могу думать, это то, что вводимая дата имеет миллисекунды после двоеточия (:), а не точку (.). Я мог бы написать программу, которая преобразует двоеточие в точку, а затем загружает ее, но я отредактировал файл и изменил первые шесть строк на точкуи это, похоже, не возымело никакого эффекта.

Для импорта я использую «Источник плоского файла», в разделе «Дополнительно» я выбираю «Тип данных» для столбца и использую каждый из следующих типов данных.

дата базы данных [DT_DBDATE], время базы данных [DT_DBTIME], время базы данных с точностью [DT_DBTIME2],

временная метка базы данных [DT_DBTIMESTAMP], временная метка базы данных с точностью [DT_DBTIMESTAMP2],

DT_DBTIMESTAMPOFFSET] и четная дата [DT_DATE], десятичная [DT_DECIMAL], временная метка файла [DT_FILETIME]

Адресатом является собственный клиент SQL Server 11.0 с типом назначения datetime2, который определен в таблице как datetime2(7), а не null.

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

Я был бы признателен за любую помощь.

Спасибо,

Боб

Ответ №1:

Спасибо всем, кто потратил некоторое время на изучение этого вопроса, но я решил свою проблему по-другому. Вместо того, чтобы преобразовывать мою строку datetime в datetime базы данных, я просто загрузил ее как столбец varchar в моей таблице. Я буду использовать это datetime только в предложении where операторов SELECT и никогда в сравнениях даты или времени. Он должен работать нормально, используя подстроку в моем «предложении where», когда мне нужно выбрать данные.