转换时在 SSIS 中将字符串转换为日期时间,考虑每个字符串支持的格式很重要数据类型。本文探讨了 SSIS 对 DT_DBTimestamp 数据类型的隐式转换功能。
下表列出了各种日期时间数据类型的默认格式在 SSIS 中转换时strings:
Datatype | 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] |
尽管没有明确支持“1-Jan”格式,SSIS 会将此字符串隐式转换为 1/ 1/2017(分配给 DT_DBTimestamp 输出列时)。这与在 SQL Server 中转换相同字符串相反,后者会导致错误。
为了验证此行为,我们使用 SSIS 和 SQL Server 进行实验:
SSIS 中的脚本组件迭代各种文化日期格式并将它们分配给 DT_DBTimestamp 输出列。如果转换成功,则记录格式和接受情况。结果输出到文件,突出显示隐式转换。
对每种日期格式执行 SqlCommand 以测试其转换。捕获异常以确定不可接受的格式。
有关 SSIS 和 SQL Server 中数据类型转换的更多详细信息,请参阅以下资源:
在将字符串分配给 DT_DBTimestamp 数据类型时,SSIS 为某些日期格式提供隐式转换。在 SQL Server 中情况并非如此,必须显式定义特定格式才能进行转换。
以上是SSIS 如何将字符串隐式转换为 DT_DBTimestamp,这与 SQL Server 有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!