2016-07-29 217 views
0

我试图运行一个SSIS程序来获取一些日志记录数据并将其导出到Excel中以供将来与BI工具一起使用。数据有3个时间字段,开始时间,结束时间和运行时间。他们似乎是从我的脚本组件出来的。因为当我使用数据查看器工具时它看起来很完美SSIS在导出为ex​​cel时添加日期时间字段

但是,当我进入Excel时,我得到这种类型的格式。

On Run Time column

我不知道是什么原因造成这样或如何解决它。我能够注意到的唯一情况是源高级编辑器中的属性设置了列数据类型。

The Property

但每次我试图改变它输入DB_TIME(同类型现身脚本),它只是切换回日期型数据的时间。

有没有办法阻止添加这个日期?它使得商业智能工具无法使用。任何帮助将不胜感激。

+0

您是否尝试在导出之前将结果转换为nvarchar(通过查询)?通过这种方式,excel将信息视为一个字符串,其格式为我想要的 –

+0

。你能解释这是怎么完成的吗? –

+0

在查询中使用CONVERT(NVARCHAR,starttime,103)作为开始时间(例如DD/MM/YYYYY),您可以找到更多关于[here]格式的信息(https://technet.microsoft.com/en-us/ library/ms187928(v = sql.105).aspx),以这种方式将数据导出为具有相同格式的字符串。那么Excel将不会将该字段识别为日期,但字符串为 –

回答

0

我发现了这个问题。它与Excel连接管理器自动将该字段识别为日期时间字段有关,因此将其以该格式导出。这种变化发生在最终组件和目的地之间的连接中,因此在此之后发生的转换不起作用。

我只是将xls文件更改为csv文件,并使用了平面文件管理器,而且做到了这一招!

0

这对我来说看起来很奇怪,但尝试向包中添加数据转换转换。这应该强制你想要的任何类型的数据,不管是字符串还是时间。

+0

我试过数据转换组件没有成功。然而,当我试图转换为字符串时,它给了我一个'该值无法转换,因为可能会丢失数据'错误,所以我可能需要弄清楚并尝试获取一个字符串。 –

+0

你尝试了什么转换?您的脚本组件返回一个DateTime对象或一个字符串,.NET还没有Time类型。您是否尝试投射到'DT_DBTIME'? –

+0

是的我已经尝试过施放日期时间,并且我试图只返回脚本组件的时间。作为c#timespan数据类型的dbtime。在ssis中既没有达到 –

0

你试过

DT_WSTR(1252)

投用数据转换转换的时间?