【问题标题】:SQL date column being converted to DT_WSTR instead of DT_DBDATE using SSIS lookup component使用 SSIS 查找组件将 SQL 日期列转换为 DT_WSTR 而不是 DT_DBDATE
【发布时间】:2016-06-17 01:56:06
【问题描述】:

我正在使用视图作为 SSIS 中查找转换的基础。

在我看来,我有几列是 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 更接近我想要的。我正在尝试放弃必须使用派生列进行这种简单的数据转换,我是否遗漏了一些可以使它工作的东西?

最好的,

部落84

【问题讨论】:

    标签: sql-server date ssis type-conversion


    【解决方案1】:

    我遇到了同样的问题,我修复了它,从我的共享连接更改了 OLE DB 提供程序。 当我选择“Microsoft OLE DB Provider for SQL Server”时,查找组件会识别我的 SQL SERVER 2014 数据库中的日期列,例如 DT_WSTR。我将 OLE DB Provider 更改为“SQL Native Client 11.0”,问题就解决了。

    【讨论】:

      【解决方案2】:

      右键单击查找并选择“显示高级编辑器”。

      转到Input and Output Properties 并将日期列的数据类型指定为DT_DBDATE

      【讨论】:

      • 我试过了,但我收到一条错误消息:不允许设置输出列数据类型属性。
      • 嗯,根据快速谷歌,从头开始重建查找可能会解决问题。否则,您能否将查找替换为 Source Component 和 MergeJoin 的组合?
      • 我也已经尝试重新创建查找。更奇怪的是,我还创建了一个实际的表(而不是视图),但仍然是同样的问题。我也有其他日期列使用查找按预期工作,所以这个问题对我来说非常奇怪。
      • 我会查看不起作用的查找的 xmla,并将其与一个(或多个)起作用的查找进行比较,看看是否存在明显差异。
      猜你喜欢
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      相关资源
      最近更新 更多