我試圖使用SSIS將數據導出到平面文件(.csv)中,然後將其保存到目錄中,以便將其掃描並導入某個目錄會計軟件。該軟件(不幸)只能識別MM/DD/YYYY時間的日期。我試過每種方法來將從SQL中提取的數據轉換或轉換爲MM/DD/YYYY,但不管怎樣,數據總是在平面文件連接中被識別爲DT_Date或DT_dbDate數據類型,並保存爲YYYY-MM-DD。數據類型轉換不會粘在SSIS中
我已經嘗試過各種數據轉換,派生列的組合,並將平面文件列的屬性更改爲字符串,希望我至少可以使用子字符串操作來正確獲取此格式,但它永遠不會失敗下降爲YYYY-MM-DD。這真是莫名其妙。 OLE DB源文件中的預覽將顯示日期爲「MM/DD/YYYY」,但不知何故,當它遇到平面文件時,總是變爲「YYYY-MM-DD」。
我試着尋找解決方案(例如,這裏:Stubborn column data type in SSIS flat flat file connection manager won't change. :(),但沒有運氣。令人驚訝的是,如果我只是在Excel中打開文件並保存它,它會在文本編輯器中將日期顯示爲「MM/DD/YYYY」,只會爲此百慕大三角形的跳躍添加更多神祕感。
如果有任何提示,我會非常感激。
如果我理解正確,你是_exporting_一個還不存在的文件。你有一個派生列轉換將SQL列轉換爲字符串嗎?這裏有一個鏈接,告訴你如何做到這一點:http://stackoverflow.com/questions/16711349/ssis-expression-convert-date-to-string。您需要確保添加新列,而不是替換現有列。現在,您應該可以右鍵單擊/顯示高級編輯器,並且在_input和output properties_中,您可以觀察該列的數據類型。它應該始終保持字符串。 –
還有一件事 - 確保您在**文本編輯器(記事本)中打開CSV文件進行檢查。不要在Excel中打開它 - 這只是混淆了事情。一個csv文件實際上是一個文本文件,而不是一個excel文件。 –
..最後不要害怕刪除文本文件的目標和readd。有時候,即使文件不存在,它也可能會讓它的數據類型停滯不前。不幸的是,SSIS中的數據類型每天都會發生。它經常會出錯,固執地拒絕修復它,直到你按照設定的順序執行一組神奇的操作,而你下次將無法記住它。 –