【问题标题】:Why is > conditional split in SSIS package returning >= result? update: (DateTime != DT_DBTIMESTAMP ?!)为什么 > SSIS 包中的条件拆分返回 >= 结果?更新:(日期时间!= DT_DBTIMESTAMP?!)
【发布时间】:2010-09-30 02:29:53
【问题描述】:

我有一个 SSIS 数据流条件拆分转换,它在应该返回 > 结果时返回 >= 结果。

从一开始...我的 SSIS 包执行一个 SQL 任务,该任务将一个表中的 max(date) 存储在具有包范围的 DateTime 类型的变量 User::max_date 中。

然后我的包继续执行数据流任务,其中包含条件拆分转换,条件为date > @[User::max_date]。结果集始终是单行,其 DateTime 值等于 User::max_date,也就是说,如果没有添加比 max(date) 更新的行,则返回包含 max(date) 的行。这是意外的行为。

此外,条件拆分的另一个输出是不正确的——它是所有带有date < @[User::max_date] 的行,而不是所有带有date <= @[User::max_date] 的行。

为什么会这样?

更新:

我已经弄清楚这是怎么发生的,但不知道为什么。 User::max_date 正在存储一个日期时间,而我的数据流任务中的 date 值是 DT_DBTIMESTAMP。将它们与DATEDIFF(..) 进行比较后,它们的差异仅在毫秒及以上。

所以我可以解决这个问题,但我不知道为什么会这样实现。

评论?

【问题讨论】:

    标签: datetime ssis conditional dataflow dataflowtask


    【解决方案1】:

    没关系。在微软forums上找到了答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 2023-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-07
      相关资源
      最近更新 更多