我试图导入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
你会注意到分钟/秒尚未导入。
我一定是使用了错误的日期时间格式,但似乎已经尝试没有成功的所有组合。
任何人都可以点我在正确的方向?
我也有类似的情况,一旦那里的问题是在我的源代码,而不是目的地。
我建议你检查由右SourceComponent领域单击它,选择显示高级编辑 - >开关输入及输出性能 - >展开“输出列” - > Slect你的专栏,并切换到propper数据类型(通常[DT_DBTIMESTAMP]作品对于我来说足够了)。 对于测试的缘故,做同样的“输出列”
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