Detaljerat svar men jag ber att skilja mig åt om "SSIS kan inte känna igen datumformatet som anges i frågan."
Kanske om det omformulerades som "SSIS kan inte känna igen det angivna datumformatet utan hjälp." Rotproblemet i det här fallet är att rutinerna för datum- och nummeranalys som standard är lokal medveten . I allmänhet är detta en bra sak, förutom när det inte är det. Jag snubblade först över detta när jag hade att göra med datum i formatet ccyymmdd som kom från en stordator. Som andra indikerade, kommer den att tolka i tsql, varför inte SSIS? Det finns massor av artiklar där ute som förespråkar att skära och tärna strängdata för att göra det till ett giltigt datum och tid men varför gå igenom allt det krånglet?
Givet detta som exempel på indata (tabbavgränsad).
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
Och ett paket som ser ut så här,
Genom att ändra en inställning på Flat filkälla , jag kan få paketet att misslyckas eller inte.
Högerklicka på platt filkälla och välj "Visa avancerad redigerare". På fliken "Input and Output Properties" expanderar du utdatakolumnerna och letar reda på kolumnen som innehåller datumet. Ändra FastParse inställning från False till True .
När jag körde det misslyckades paketet ursprungligen eftersom det förlorade precisionen när det lagrade värdet i en DB_TIMESTAMP
. Jag lyckades när jag ställde in kolumnen till att skriva DB_TIMESTAMP2
Demopaket tillgängligt på https://sites .google.com/site/billfellows/home/files/FastParse.dtsx?attredirects=0&d=1