2016-03-03 93 views
0

我正在使用視圖作爲SSIS中的查找轉換的基礎。使用SSIS查找組件將SQL日期列轉換爲DT_WSTR而不是DT_DBDATE

在我看來,我有幾列是DATE數據類型。

ALTER VIEW [dbo].[vCampaign] AS 
SELECT 
     CampaignID 
     ,CAST([startDate] AS DATE) AS [CampaignStartDate] 
     ,CAST([endDate] AS DATE) [CampaignEndDate] 
     ,CAST([expirationDate] AS DATE) AS [CampaignExpirationDate] 
    FROM campaigns 
GO 

我的問題是,這些日期顯示爲DT_WSTR我在查找輸出列,而不是DT_DBDATE。當我使用DATETIME而不是DATE時,我得到了更接近我想要的DT_DBTIMESTAMP。我試圖放棄使用派生列進行這種簡單的數據轉換,我是否錯過了一些可以使其工作的東西?

最佳,

Tribe84

回答

0

上查找點擊右鍵並選擇 「顯示高級編輯器」。

轉到Input and Output Properties並指定日期列的數據類型爲DT_DBDATE

+0

我試過了,但是我收到一條錯誤消息:不允許設置輸出列數據類型屬性。 – tribe84

+0

嗯,基於快速谷歌,重新從頭開始查找可能會解決問題。否則,您可以使用源組件和MergeJoin的組合來替換查找嗎? –

+0

我已經嘗試重新創建查找了。更奇怪的是,我還創建了一個實際的表格(而不是一個視圖),而且還是一個相同的問題。我還有其他的日期列也按預期工作,所以這個問題對我來說太奇怪了。 – tribe84

0

我有同樣的問題,我修復它從我的共享連接更改OLE DB提供程序。 當我選擇「Microsoft OLE DB Provider for SQL Server」時,查找組件在我的SQL SERVER 2014數據庫中標識了日期列,如DT_WSTR。我將OLE DB提供程序更改爲「SQL Native Client 11.0」,問題解決了。