SSIS - форматирование данных о назначении плоских файлов

Если у меня есть столбец типа DT_DBDATE или DT_DBTIMESTAMP, и я записываю данные в файл с использованием компонента "Назначение плоского файла", результирующее форматирование даты будет YYYY-MM-DD ЧЧ: ММ: СС. Я экспериментировал с изменением языкового стандарта пакета и изменением типа данных в диспетчере соединений с плоскими файлами, но, похоже, это не имеет никакого эффекта.

От чего зависит этот формат, и есть ли способ изменить формат по умолчанию?

PS. Я знаю, что могу использовать компоненты преобразования данных и производного столбца для изменения типов / форматов данных. Дело в том, что у нас +150 пакетов и мы получаем слишком много ошибок, когда кто-то забывает выполнить преобразование или делает это неправильно.

Мы используем SSIS 2012.

1 ответ

У меня была похожая проблема при использовании SSIS 2008 с SQL Server 2008 R2. Если вы пытаетесь сгенерировать файл CSV, я бы рекомендовал сначала, на уровне базы данных, сохранить значение в нужном формате. Это означает, например, что если вы хотите отобразить столбец с текущей датой в формате ГГГГ-ММ-ДД, вам следует использовать соответствующий код для хранения этого значения. Использование T-SQL будет следующим: convert (varchar (10), cast (GETDATE () как date), 126). Дважды проверьте, что значение было сохранено в желаемом формате, читая таблицу. Теперь самое сложное: независимо от того, что вы используете в SSIS для преобразования дат, если вы откроете CSV с помощью Excel, то Excel будет отображать даты, используя формат, установленный для операционной системы. Не паникуйте, просто не сохраняйте этот файл, когда хотите закрыть его. Вместо этого, если вы откроете CSV с помощью Notepad или Notepad++, вы сможете увидеть столбцы даты прямо в формате, который вы использовали для хранения их в базе данных.

Другие вопросы по тегам