【问题标题】:Filtering date column in Visual Studio SSIS ( Derived column)在 Visual Studio SSIS 中过滤日期列(派生列)
【发布时间】:2019-12-23 10:52:56
【问题描述】:

我想使用 SSIS 在 VS 中过滤从 2014-2019 到 2017-2018 的列。 我尝试了不同的方法,但似乎都不起作用。

【问题讨论】:

  • 那么,你想做什么,怎么办?
  • 要么在源 SQL 查询中过滤(推荐),要么使用条件拆分(不推荐)
  • +1 将逻辑移动到 SQL 查询。如果通过条件拆分留在 SSIS 中,请将日期字符串转换为日期类型,然后再与 [week] 进行比较。否则使用 DateTime 函数 YEAR([week]) 并查看年份。

标签: visual-studio ssis derived-column


【解决方案1】:

Derived Column date 在您的示例中可能是您​​正在寻找的。

Week 列的日期类型为 DT_DBDATE。您的字符串“2017-01-01”应该被提升为数据日期类型,因此布尔检查将确定是否满足下限。

您要么需要创建第二个派生列来检查上限,要么如@vhoang 所示,更改逻辑以仅从日期列中提取年份。

YEAR([Week]) >= 2017 && YEAR([Week]) < 2019

现在,您有一列将每一行标记为是否符合条件(年份是 2017 年或 2018 年)

然后你需要做一些事情。 SSIS 的东西称为条件拆分。我将添加一个名为OutOfConsideration 的新路径,如果年份符合我们的标准,那么逻辑将与我们上面的派生列Derived Column date 相反。

![Derived Column date]

现在将您的目标或其他处理步骤连接到条件拆分的默认输出路径。如果您需要对无效数据进行处理,那就是 OutOfConsideration 路径。

最后,要从 SSIS 中获得最佳性能,只需将您需要的行放入其中。如果源数据在支持过滤的系统中,则在那里过滤数据。单击单击设计 SSIS 包很容易,但从长远来看,您最好编写自定义查询以仅将所需的列和行带入数据流。减少所有工作,降低维护成本等

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多