【问题标题】:convert ssis expression datetime to int将 ssis 表达式 datetime 转换为 int
【发布时间】:2019-06-11 19:51:07
【问题描述】:

我想在 ssis 中计算上周五的日期。下面的代码就是这样做的。

DATEADD("dd", -1 - (DATEPART("dw", getdate()) % 7), getdate())

但它给出了 datetime 数据类型的结果,我想要 ssis 中 int 数据类型的结果。

如何转换?

DATEADD("dd", -1 - (DATEPART("dw", getdate()) % 7), getdate())

【问题讨论】:

    标签: sql-server datetime ssis expression etl


    【解决方案1】:

    据此Microsoft article

    当字符串转换为 DT_DATE 时,或反之亦然,将使用转换的语言环境。但是,无论区域设置首选项是否使用 ISO 格式,日期都是 YYYY-MM-DD 的 ISO 格式。

    为了将值转换为整数yyyyMMdd

    1. 首先您必须将值转换为字符串
    2. 获取前 10 位数字
    3. 删除-分隔符
    4. 转换为整数。

    您可以使用以下表达式:

    (DT_I4)REPLACE(SUBSTRING((DT_WSTR,50)DATEADD("dd", -1 - (DATEPART("dw", getdate()) % 7), getdate()),1,10),"-","")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 2012-03-27
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多