Данные SSIS неправильно передаются в пункт назначения excel

в пакете SSIS я импортирую данные из плоского файла в базу данных, выполняю запрос sql и экспортирую результаты в место назначения excel. моя проблема в том, что у меня есть оператор convert,cast, который отлично работает в sql, он возвращает значение как HH:MM:SS. поле представляет собой строку. моя проблема в том, что когда он входит в Excel, он отображает данные столбца как MM:SS:0, мне нужно, чтобы они оставались в формате ЧЧ: ММ: СС. Я пытался использовать преобразование данных и производный столбец. но я не могу этого добиться. в моем sql db у меня есть 2 поля типа данных 'nvarchar', я хочу добавить их вместе, поэтому есть следующее

CONVERT(varchar(8), CAST(time as datetime) + CAST(length as datetime), 108) as 'endtime',

это возвращает такие значения, как 14:22:01, когда он экспортируется в Excel, он отображается как 22:01:0

Любые советы будут высоко ценится


person sql2015    schedule 05.01.2018    source источник
comment
К сожалению, Excel делает все, что ему нравится. Я не знаю способа принудительно отформатировать Excel, кроме как использовать автоматизацию для последующего форматирования столбца. Нет, если вы вручную отформатируете столбец, данные придут через OK   -  person Nick.McDermaid    schedule 05.01.2018
comment
да, если я вручную изменю формат столбца excel на время, оно изменится правильно. Мне просто нужно добиться этого без ручного изменения   -  person sql2015    schedule 05.01.2018
comment
Вот пример кода (который можно запустить в задаче SSIS), который форматирует столбцы: social.msdn.microsoft.com/Forums/sqlserver/en-US/ Чтобы это работало, на вашем сервере SSIS должен быть установлен Excel. Вы экспортируете данные в excel, чтобы загрузить их в другую систему, или это какой-то отчет?   -  person Nick.McDermaid    schedule 05.01.2018
comment
нет, электронная таблица Excel создается на сервере, а затем отправляется по электронной почте в виде отчета. Я просто изучал сценарии, я новичок в SSIS, поэтому просто пытаюсь понять это.   -  person sql2015    schedule 05.01.2018
comment
Итак, это отчет, поэтому форматирование имеет решающее значение. Вы знаете, что SSRS обычно лучше подходит для форматирования отчетов? SSIS на самом деле не является средством создания отчетов.   -  person Nick.McDermaid    schedule 05.01.2018
comment
@Nick.McDermaid, согласен! Вы также можете экспортировать SSRS в формате Excel.   -  person MiguelH    schedule 05.01.2018
comment
@Nick.McDermaid, вы должны собрать все эти комментарии в ответ, чтобы вопрос можно было закрыть.   -  person Tab Alleman    schedule 05.01.2018
comment
Почему бы не преобразовать строку в TIME вместо VARCHAR(8) перед экспортом в Excel?   -  person digital.aaron    schedule 05.01.2018


Ответы (1)


Вы можете отформатировать столбец Excel с помощью задачи сценария.

Вы должны использовать библиотеку манипулирования Excel, например Micsoroft.Interop.Excel, чтобы изменить формат столбца на HH:mm:ss.

Вы можете получить рабочий пример из следующего вопроса:

person Hadi    schedule 05.01.2018