none
Conversão de Dados no Integration Service RRS feed

  • Pergunta

  • Prezados,

     

      Estou fazendo uma migração de dados e estou tendo algumas dificuldades com o Integration Service, gostaria da ajuda de você pra resolver algumas dúvidas.

     

      Estou importando dados de um arquivo texto, dentre eles existem dados de data no formado ddmmaaaa. Se fizer a importação dos dados em formato varchar sou obrigado e via script a fazer a conversão para o formato de data do SQL.

     

      O comando abaixo foi usado pra fazer a conversão:

     

    SELECT crj.DtaEtg,

    convert(datetime,substring(crj.dtaetg,1,2)+'/'+substring(crj.dtaetg,3,2)+'/'+substring(crj.dtaetg,5,4),103)

    FROM CrtEtg crj

     

      Exemplo dos dados:

    Original      Dado Esperado

    12032008 - 2008-03-12 00:00:00.000

    12032008 - 2008-03-12 00:00:00.000

     

     

      Eu consigo resolver o problema fazendo update depois de importar os dados, mas gostaria da ajuda dos colegas para fazer essa conversão no prórprio processo de importação dos dados.

     

    Obrigado

     

    Flávio Melo

    segunda-feira, 24 de março de 2008 22:01

Respostas

  • Você pode fazer esta conversão utilizando um component Derived Column, utilizando os Substring, como na sua query, seguido de um cast para o DT_DBDATE, que espera uma string no formato "yyyy-mm-dd" (portanto não se esqueça de adicionar os "-" entre o ano/mês e mês/dia.

     

    Se quiser um pacote mais fácil de dar manutenção, use dois Derived Column. No primeiro crie colunas [Ano], [Mes] e [Dia], preenchendo-as com os respectivos valores, através do SUBSTRING. No segundo Derived Column, faça o cast: (DT_DBDATE)([Ano] + "-" + [Mes] + "-" + [Dia])

     

     

    • Marcado como Resposta Richard Juhasz quinta-feira, 31 de janeiro de 2013 14:53
    terça-feira, 25 de março de 2008 12:04