【问题标题】:How to get current date -1 (yesterday) in DataStage?如何在 DataStage 中获取当前日期 -1(昨天)?
【发布时间】:2021-08-24 17:58:14
【问题描述】:

您好,我一直在研究如何在 DataStage 中获取昨天的日期?

CurrentDate()-1

当我编译作业时,它给了我一个错误。 那么我该怎么做才能获得昨天的日期? 顺便说一句,我在 Transformer 阶段做的代码

【问题讨论】:

    标签: etl datastage ibm-infosphere


    【解决方案1】:

    假设您在 DataStage 中使用并行引擎 - 这可能是一个解决方案

    DateOffsetByComponents

    DateOffsetByComponents(CurrentDate(), 0, 0, -1)
    

    因为最后一个参数是天部分,-1 会减去一天

    【讨论】:

    • 谢谢你这工作正常,符合我的预期!谢谢迈克尔蒂芬巴赫。
    【解决方案2】:

    将日期转换为日期类型,然后可以加减天数。

    您可以使用 IConv 将字符串转换为 datastage 内部日期格式。然后您可以对日期执行加法/减法。然后使用 OConv 将变量转换回字符串格式。

    如果这是在变压器阶段完成的,则需要在一个语句中完成所有操作:

    OConv(Iconv(VDate ,"D/YMD[4,2,2]") - 1), "D/YMD[4,2,2]")
    

    希望这会有所帮助。

    【讨论】:

    • 我是这里的新手(新手),那 4,2,2 是什么意思?
    • ICONV 用于日期的目的是将它们转换为单一的内部格式,而不考虑外部格式。 ICONV 非常灵活。如果外部日期的组件顺序与您的区域设置相同,则唯一需要的规范是“D”。如果外部日期中的组件排序与您所在地区的不同,您只需指定组件标记。无论外部格式中的实际分隔符如何,ICONV 都会处理。您可以根据需要指定以下任何一项 - D-YMD[4,2,2] D-YMD[2,2,2] D/MDY[2,2,4] 等
    • 您可以在这里阅读更多相关信息 - intl-spectrum.com/Article/r483/…
    【解决方案3】:

    在并行 Transformer 阶段,我会使用 DateFromDaysSince() 函数。以当前日期函数为基数,-1为偏移量。

    【讨论】:

      猜你喜欢
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 2020-05-06
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多