我正嘗試使用SSIS將CSV導入數據庫。我遇到的問題是列號爲smalldatetime
的數據類型沒有空值。與此列關聯的字符串的格式爲MMddYYYY
,它也沒有空值。 目前我正在嘗試使用Derived列將字符串轉換爲DT_DBTIMESTAMP
。使用SSIS將字符串轉換爲smalldatetime對象
目前我收到錯誤消息:[Derived Column [36]] Error: An error occurred while attempting to perform a type cast.
在我的表情場,我有:(DT_DBTIMESTAMP)(SUBSTRING([Derived Column 5],5,4) + "/" + SUBSTRING([Derived Column 5],1,2) + "/" + SUBSTRING([Derived Column 5],3,2))
預先感謝您的幫助!
似乎與數據有關。確保輸入數據格式在所有情況下實際上都是MMddYYYY,並且在安全方面修剪表達式中的列:(DT_DBTIMESTAMP)(SUBSTRING(trim([Derived Column 5]),5,4)+「/」 + SUBSTRING(trim([Derived Column 5]),1,2)+「/」+ SUBSTRING(trim([Derived Column 5]),3,2))。另外請確保您在此列中沒有空值或空值。 – Jayvee
此鏈接http://technet.microsoft.com/en-us/library/ms141036(v=sql.105).aspx表示'DT_DBTIMESTAMP'所需的格式爲'yyyy-mm-dd hh:mm:ss [ .fff]'。你爲什麼在你的轉換中使用斜槓?也可以嘗試在00:00:00結束以滿足hh:mm:ss部分。同時確保你在記事本中檢查你的文件,而不是Excel。最後將第5列加載到varchar字段中,並在轉換之前檢查它。 –
謝謝@ElectricLlama我會試試 – Trax5