【问题标题】:Expression in SSIS - Derived column to change the Date from the last SIX daysSSIS 中的表达式 - 派生列以更改过去六天的日期
【发布时间】:2017-06-09 15:59:39
【问题描述】:

我正在研究 SSIS,我的问题是我在该数据中有一个 XML 文件数据,其中一列标题是 TIMESTAMP 并且 TIMESTAMP 示例数据在这里:

    2013-08-02 00:15:00
    2013-08-03 00:30:00
    2013-08-04 00:45:00
    2013-08-05 08:45:00
    2013-08-06 08:45:01
    2013-08-08 08:45:02

在上面的数据中,我要把Date改成:

    2017-06-02 00:15:00
    2017-06-03 00:30:00
    2017-06-04 00:45:00
    2017-06-05 08:45:00
    2017-06-06 08:45:01
    2017-06-08 08:45:02

那么,如何在派生列中编写表达式来更改过去六天的日期?不更改日期旁边的“TimeReading”。

这意味着 Date 应该从前 6 天更改并弹出,并且 Date 旁边的 TimeReading 应该与以前的数据相同。

我做了什么:

在表达式中,如果我给 GETDATE() 输出填充的是今天的日期,而 TimeReading 填充的是 00:00:00。

如果我给 GETDATE()-1,输出将填充上一个日期,TimeReading 填充为 00:00:00,

但我需要使用相同的 TimeReading 获取过去 六天 的连续日期。

有人可以帮忙吗?

【问题讨论】:

    标签: datetime ssis


    【解决方案1】:

    我相信您要查看的是 DateAddFunction。我认为您要求从 TimeReading 中的日期减去 6 天(不确定,因为您的示例显示 2 天或 1 天)。但无论如何,持续 6 天:

    DateAdd(Day,6,TimeReading)
    

    使用 DerivedColumn 创建一个新字段来包含这个新值。

    【讨论】:

    • 感谢 Marc 的回复,我必须将 2013-08-02 之类的数据更改为 2017-06-02 等六天,以同样的方式更改所有日期。
    • 我不明白,2013-08-02 和 2017-06-02 怎么相差六天?
    • 这两天相差 1575 天。
    • 您是说只需要更改具有这 6 个日期之一的记录中的字段吗?
    • 是的,我必须将字段 2013-08-02 00:15:00 更改为 2017-06-02 00:15:00 日期字段应该更改并且时间戳字段应该相同。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多