首页 >数据库 >mysql教程 >SSIS 如何将字符串隐式转换为 DT_DBTimestamp,这与 SQL Server 有何不同?

SSIS 如何将字符串隐式转换为 DT_DBTimestamp,这与 SQL Server 有何不同?

Linda Hamilton
Linda Hamilton原创
2024-12-29 14:17:12203浏览

How Does SSIS Implicitly Convert Strings to DT_DBTimestamp, and How Does This Differ From SQL Server?

SSIS 源格式日期时间隐式转换

概述

转换时在 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]

DT_DBTimestamp 的隐式转换

尽管没有明确支持“1-Jan”格式,SSIS 会将此字符串隐式转换为 1/ 1/2017(分配给 DT_DBTimestamp 输出列时)。这与在 SQL Server 中转换相同字符串相反,后者会导致错误。

隐式转换实验

为了验证此行为,我们使用 SSIS 和 SQL Server 进行实验:

SSIS 隐式转换:

SSIS 中的脚本组件迭代各种文化日期格式并将它们分配给 DT_DBTimestamp 输出列。如果转换成功,则记录格式和接受情况。结果输出到文件,突出显示隐式转换。

SQL Server 隐式转换:

对每种日期格式执行 SqlCommand 以测试其转换。捕获异常以确定不可接受的格式。

其他信息

有关 SSIS 和 SQL Server 中数据类型转换的更多详细信息,请参阅以下资源:

  • 集成服务数据类型
  • SSIS到 SQL SERVER 数据类型转换

结论

在将字符串分配给 DT_DBTimestamp 数据类型时,SSIS 为某些日期格式提供隐式转换。在 SQL Server 中情况并非如此,必须显式定义特定格式才能进行转换。

以上是SSIS 如何将字符串隐式转换为 DT_DBTimestamp,这与 SQL Server 有何不同?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn