SSIS 來源中日期的隱式轉換
在處理資料時,通常需要在不同格式之間轉換日期。在 SSIS 中,日期轉換的行為有時可能是意外的。本文研究了日期字串到不同 SSIS 資料類型的隱式轉換,並提供了受支援格式的參考圖表。
下表概述了日期時間的預設格式從字串轉換時的資料類型:
Data Type | Default Format | |
---|---|---|
DT_DBDATE | yyyy-mm-dd | |
DT_FILETIME | yyyy-mm-dd hh:mm:ss:fff | |
DT_DBTIME | hh:mm:ss | |
DT_DBTIME2 | hh:mm:ss[.fffffff] | |
DT_DBTIMESTAMP | yyyy-mm-dd hh:mm:ss[.fff] | |
DT_DBTIMESTAMP2 | yyyy-mm-dd hh:mm:ss[.fffffff] | |
DT_DBTIMESTAMPOFFSET | yyyy-mm-dd hh:mm:ss[.fffffff] [{ | -} hh:mm] |
為了測試日期時間字串的隱式轉換,使用SSIS 和SQL Server 進行了實驗。
建立了帶有 Dataflowtask 的 SSIS 套件。使用腳本元件(作為來源)和平面文件目標。腳本元件有一個 DT_DbTimeStamp 類型的輸出列。在腳本中,進行了一系列實驗:
這些實驗的結果表明,多種日期時間格式都會隱式轉換為 DT_DBTIMESTAMP 資料類型,即使是那些未考慮的格式規格。
SQL Server 查詢用於測試某些字串格式是否會隱式轉換為日期時間。執行了以下查詢:
SELECT CONVERT(DATETIME, '" + dtdate.ToString(strFormat) + '")
結果顯示,任何語言設定都只能正確解釋兩種日期時間字串格式:
以上是SSIS如何將日期字串隱式轉換為不同的資料類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!