2016-12-22 4 views
0

Если у меня есть столбец типа DT_DBDATE или DT_DBTIMESTAMP, и я записываю данные в файл с использованием компонента Flat File Destination, то в результате форматирование даты будет YYYY-MM-DD HH: MM: песчаники Я экспериментировал с изменением локали пакета и изменением типа данных в диспетчере соединений с плоскими файлами, но они, похоже, не имеют никакого эффекта.SSIS - форматирование данных в формате Flat File

Что определяет этот формат и есть ли способ изменить форматирование по умолчанию?

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

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

+0

Итак, какой формат вам нужен? И для чего используются плоские файлы? Если они обрабатываются какой-либо другой задачей/пакетом, возможно, стоит рассмотреть возможность изменения процесса чтения вместо процесса записи ... – Tyron78

+0

Формат, который мне нужен, - это ГГГГ-МММ-ДД. Плоские файлы используются другим процессом, над которым я не контролирую. Если бы я это сделал, я бы сделал то, что вы предложили. – Rubio

+0

И результат DT_DBDATE в ГГГГ-ММ-ДД ЧЧ: ММ: SS тоже? – Tyron78

ответ

0

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

+0

Мы используем Oracle. При извлечении данных из столбцов Oracle типа DATE сопоставляются DT_DBTIMESTAMP в SSIS. Выполнение того, что вы предлагаете, приведет к тому, что у меня будут даты типа DT_STR в SSIS. Это помешало бы мне делать манипуляции на основе даты на стороне SSIS (или мне пришлось бы снова преобразовать в DT_DATE). Основываясь на отсутствии ответов на мой вопрос, казалось бы, что SSIS Flat File Destination использует жестко кодированные форматы, один из многих недостатков SSIS. – Rubio

 Смежные вопросы

  • Нет связанных вопросов^_^