Служба SSIS преобразует поле даты .csv в неверный формат на производственном сервере SQL. - PullRequest
3 голосов
/ 07 марта 2011

Я использую SSIS 2005 для чтения данных из CSV-файла в базу данных SQL Server 2005. Я использую диспетчер соединений с плоскими файлами для .csv и диспетчер соединений OLEDB для полученных строк.

Файл .csv содержит поле, представляющее собой дату в британском формате (дд / мм / гггг), которое можно записать, скажем, 03.07.2011 для 7 марта 2011 года. Затем этот столбец сопоставляется с эквивалентным поле datetime в базе данных SQL Server.

Проблема, с которой я сталкиваюсь, заключается в том, что, хотя на компьютере разработчика все работает нормально, при использовании в производственной среде даты меняются на формат США (мм / дд / гггг) (если он действителен), когда они вставляются в SQL Server. Есть ли место, где можно указать желаемый регион / формат (в данном случае Великобритания) для поля даты и времени назначения, возможно, где-то в пакете или какой-либо настройке на самом производственном сервере?

Заранее спасибо, Тим

1 Ответ

3 голосов
/ 07 марта 2011

Можно установить языковой стандарт в редакторе диспетчера соединений с плоскими файлами или LocaleID в поле «Свойства» для подключения (тоже самое).При установке значения «Английский (Великобритания)» даты будут интерпретироваться правильно, поскольку SSIS использует языковой стандарт в пакете или потоке данных, а не языковой стандарт операционной системы.

Обратите внимание, что необходимо установить формат в источнике, а не место назначения: datetime - это двоичный формат в MSSQL, поэтому даты все равно не хранятся внутри в формате, специфичном для локали.

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