2016-07-29 216 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)

投用數據轉換轉換的時間?