2014-02-06 2 views
0

Вчера я опубликовал один вчерашний вопрос о преобразовании данных. Теперь я перефразирую проблему, как показано ниже.Преобразование данных в SSIS

У меня есть один текстовый флип, где у меня есть дата и время как строка. Так что мне нужно прочитать эту стрингу (дата + время) И переверните это в двойном

Мы можем видеть в примере ниже.

"Date"  "Time"  "Converted Double" 
"01/31/2014" "30:00.0" to "41670.3541666667" 

Теперь я сделал преобразование, как показано ниже.

"Дата G", "Время G", Concatinated_Date_Time»

"41670,0000000000", "00: 00,0", "01/31/2014 00: 00,0",

Я использовал followin для преобразования Дата G (DT_NUMERIC, 16,10) (DT_DATE) [Дата G]

Но когда я пытаюсь сделать то же самое с "Concatinated_Date_Time" Это дает мне ошибку. мне нужно "Concatinated_Date_Time" в двойной форме (+41670,548400000) .

Просим, ​​пожалуйста, Мне.

Спасибо

+1

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

+0

Я изменил его, пожалуйста, см. Выше. –

ответ

0

Наконец я понял это!

Я следил за следующими шагами.

  1. Преобразование строки "ДАТА G", чтобы DT_DATE
  2. DATEADD ("Hh", 0, outputfrom шаг 1)
  3. SUBSTRING ("ВРЕМЯ Г", 1,2) хранить в одном выходе, SUBSTRING («TIME G», 3,2) сохраняются на одном выходе, SUBSTRING («TIME G», 5,3) сохраняются на одном выходе

  4. ДОБАВИТЬ все, используя DATEADD(), и тип выдаст результат DT_DATE как его выход - DT_DBTIMESTAMP, который не может быть преобразован в DT_Numeric напрямую.

  5. Тип Cast к (DT_NUMERIC) выход с шага 4

Спасибо всем

Plese дайте мне знать, если его не объяснил хорошо.

Спасибо всем

+0

Вы должны принять свой собственный ответ здесь. –

+0

Вы должны сделать это, просто соединяя значения с линией «00:» с DT_DATE, а затем с числовой. Это все одна строка и требуется только 1 производный столбец (DT_NUMERIC) ((DT_DATE) (DateCol + "00:" + TimeCol)) – Matt

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