SSIS导入datetime列到SQL Server 2008(SSIS importing dat

2019-06-26 23:10发布

我试图导入PSV文件到使用SSIS的SQL Server 2008。

所有从包含一个字段除了做工精细datatime

被导入的文件的内容包含在日期时间的格式

2012-08-08T13:31:28.170

文件连接器设置,对于PSV文件是数据库的时间戳精度[DT_DBTIMESTAMP2]

在SQL Server中的目标列有datetime数据类型。

的SQL表的包/内容的结果是进口日期时间:

2012-08-08 00:00:00.000

你会注意到分钟/秒尚未导入。

我一定是使用了错误的日期时间格式,但似乎已经尝试没有成功的所有组合。

任何人都可以点我在正确的方向?

Answer 1:

我也有类似的情况,一旦那里的问题是在我的源代码,而不是目的地。

我建议你检查由右SourceComponent领域单击它,选择显示高级编辑 - >开关输入及输出性能 - >展开“输出列” - > Slect你的专栏,并切换到propper数据类型(通常[DT_DBTIMESTAMP]作品对于我来说足够了)。 对于测试的缘故,做同样的“输出列”



Answer 2:

TL;博士

使用DT_DBTIMESTAMP为你的类型和fastParse设置为true

建立

我创建了一个CSV具有以下行。 由于SQL Server只具有.003ms的日期时间的精确度,这将确保任何四舍五入问题将浮出水面

2012-08-08T13:31:28.170
2012-08-08T13:31:28.171
2012-08-08T13:31:28.172
2012-08-08T13:31:28.173

我创建了我的目标表

CREATE TABLE [dbo].[datetime2Demo]
(
    [EventDate] [datetime2](7) NOT NULL
,   [insert_date] [datetime2](7) NOT NULL DEFAULT(current_timestamp)
,   [string_type] [varchar](50) NULL
) ON [PRIMARY]

然后我创建了一个连接管理器,命名为DT_DBTIMESTAMP并用一个名字在高级下定义的一列EventDate和数据类型database timestamp [DT_DBTIMESTAMP]

在我的数据流,I增加了一个平面文件源和使用上述连接管理器。

然后我右键点击平面文件源,并选择Show Advanced Editor 。 在“输入和输出继电器属性”选项卡上,我扩大了我的平面文件源输出控制,并再次扩大了输出列,然后选择我的EVENTDATE。 在定制属性下,我改变了默认值FastParse从假到

我有添加的STRING_TYPE值派生列(DT_STR,20,1252)"DT_DBTIMESTAMP"这样我就可以跟踪哪些工作,没有。

我用了一个OLE DB的目标和有线它到我创建的表。

结果

SELECT EVENTDATE,STRING_TYPE FROM dbo.datetime2Demo

EventDate                      string_type
2012-08-08 13:31:28.0000000    DT_DBTIMESTAMP2
2012-08-08 13:31:28.0000000    DT_DBTIMESTAMP2
2012-08-08 13:31:28.0000000    DT_DBTIMESTAMP2
2012-08-08 13:31:28.0000000    DT_DBTIMESTAMP2
2012-08-08 13:31:28.0000000    DT_DATE
2012-08-08 13:31:28.0000000    DT_DATE
2012-08-08 13:31:28.0000000    DT_DATE
2012-08-08 13:31:28.0000000    DT_DATE
2012-08-08 00:00:00.0000000    DT_DBDATE
2012-08-08 00:00:00.0000000    DT_DBDATE
2012-08-08 00:00:00.0000000    DT_DBDATE
2012-08-08 00:00:00.0000000    DT_DBDATE
2012-08-10 13:31:28.0000000    DT_DBTIME2
2012-08-10 13:31:28.0000000    DT_DBTIME2
2012-08-10 13:31:28.0000000    DT_DBTIME2
2012-08-10 13:31:28.0000000    DT_DBTIME2
2012-08-08 13:31:28.1700000    DT_DBTIMESTAMP
2012-08-08 13:31:28.1710000    DT_DBTIMESTAMP
2012-08-08 13:31:28.1720000    DT_DBTIMESTAMP
2012-08-08 13:31:28.1730000    DT_DBTIMESTAMP


文章来源: SSIS importing datetime column into SQL Server 2008
标签: sql ssis dts