【问题标题】:Expression Builder Date Assignment表达式生成器日期分配
【发布时间】:2018-12-17 07:49:57
【问题描述】:

我构建了一个 SSIS 包,每周一按计划运行。它会查找文件名末尾有日期的 .csv 文件,该日期是从它运行之日起 2 个星期六前(星期一)。我需要将变量默认为两个星期六前。示例:SSIS 作业于 2018 年 7 月 9 日运行,需要将其设置为 2018 年 6 月 30 日。 SSIS 需要在发生故障时可运行,因此如果必须再次运行,例如 2018 年 7 月 11 日,则需要默认为 2018 年 6 月 30 日。这是计划在星期一运行的每周作业。

我发现了一个与我的需求类似的问题,下面的链接供其他参考。

SSIS expression previous date without DateAdd()

【问题讨论】:

  • 你在表达式生成器中的代码是什么,有什么错误吗?

标签: ssis expressionbuilder


【解决方案1】:

我刚刚想出了如何在 Expression Builder 中为变量将日期扩展名格式化为“mmddyyyy”。下面是我的代码。

RIGHT("0" + REPLACE((DT_WSTR, 30) (DT_DATE) DATEADD("Day", 7*(DATEDIFF("Day", (DT_DATE)0, GETDATE())/7-1), ( DT_DATE)0),"/",""),8)

【讨论】:

  • 这似乎取决于区域设置。使用德语设置,这将导致 .06.2018
  • WolfgangK,我刚刚检查了公式,结果发现 2 个星期六前的日期是 07072018,但是,在你的公式中它返回 0772018。它不包括日期前面的前导零(7 )。我将在公式中的哪个位置实现它?
  • 你复制了我上一个公式,得到了 0772018?太惊人了,因为我得到了 20180707。你用了什么公式?
  • 这可能不是你的公式,但如果你评估我发布的公式,你会得到 0772018
  • 那么,您的公式还有另一个问题。你到底希望我做什么?更正你自己的公式,最终让它成为你自己问题的“解决方案”?
猜你喜欢
  • 1970-01-01
  • 2019-03-28
  • 2019-08-18
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
  • 2016-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多