2013-06-04 43 views

回答

4

SQL Server可能會理解它,但SSIS不會。注意此評論從SSIS documentation

When a string is cast to a DT_DATE, or vice versa, the locale of the transformation is used. However, the date is in the ISO format of YYYY-MM-DD, regardless of whether the locale preference uses the ISO format.

SSIS試圖基於平面文件連接器的語言環境,這可能對某些地區工作,但顯然不是爲你解讀YYYYMMDD。正如您發現的那樣,將其更改爲YYYY-MM-DD的作品,因爲SSIS認爲該格式是明確的(當然,您也可以更改平面文件連接器的區域設置,儘管這可能會影響其他數據)。

不幸的是,這種行爲在SQL Server本身中是完全相反的,至少對於datetime data typeYYYYMMDD是明確的,並且YYYY-MM-DD是不明確的。另一方面,對於較新的date data typeYYYYMMDDYYYY-MM-DD在SQL Server中是明確的。

+0

正是我想看到的那種解釋(SSIS和SQL Server之間的區別令人困惑)。謝謝! – user1068352

0

如果我將YYYYMMDD更改爲YYYY-MM-DD將數據放入表之前一切正常。如果沒有人提供另一個更好的解決方案,我會接受這個答案。也許我的是容易出現本地化錯誤?