sql >> Database teknologi >  >> RDS >> Sqlserver

Importer strengdato i kolonnen Afledt

Detaljeret svar, men jeg beder om at være anderledes med hensyn til, om "SSIS kan ikke genkende datoformatet i spørgsmålet."

Måske hvis det blev gentaget som "SSIS kan ikke genkende det medfølgende datoformat uden hjælp." Grundproblemet i dette tilfælde er, at rutinerne for parsing af dato og tal som standard er lokalkendt . Generelt er dette en god ting, undtagen når det ikke er det. Jeg faldt først over dette, da jeg beskæftigede mig med datoer i et format af ccyymmdd, der kom fra en mainframe. Som andre antydede, vil det parse i tsql, hvorfor ikke SSIS? Der er masser af artikler derude, der går ind for at skære og skære strengdataene i terninger for at gøre det til et gyldigt dato og klokkeslæt, men hvorfor gå igennem alt det besvær?

Givet dette som eksempel på inputdata (tabulatorsepareret).

LongDateDesiresFastParse    Gibberish
Oct 25 2011 10:18:10:756PM  Hello world
Oct 24 2010 10:18:10:756PM  Hello 2010 world
Oct 23 2009 10:18:10:756PM  Hello 2009 world
Oct 22 2008 10:18:10:756PM  Hello 2008 world

Og en pakke, der ser sådan ud,

Ved at ændre én indstilling på Flad filkilde , kan jeg få pakken til at mislykkes eller ej.

Højreklik på den flade filkilde og vælg "Vis avanceret editor". På fanen "Input- og outputegenskaber" skal du udvide outputkolonnerne og finde den kolonne, der indeholder datoen. Skift FastParse indstilling fra Falsk til True .

Da jeg kørte den, fejlede pakken oprindeligt, da den mistede præcision ved at lagre denne værdi i en DB_TIMESTAMP . Det lykkedes, da jeg indstillede kolonnen til at skrive DB_TIMESTAMP2

Demopakke tilgængelig på https://sites .google.com/site/billfellows/home/files/FastParse.dtsx?attredirects=0&d=1




  1. Skriv spark dataframe til postgres database

  2. c++ konverter postgres tidsstempel uden tidszone til time_t

  3. Hvordan laver jeg løbende totaler fra anden kolonne

  4. Forbind med klausul for at få toppen af ​​hierarkiet