【问题标题】:SSIS: convert date to datetimestamp with specified timeSSIS:将日期转换为具有特定时间的日期时间戳
【发布时间】:2014-01-14 14:34:18
【问题描述】:

我一直在研究如何转换我的平面文件中的日期字符串并指定时间。我找到了使用 DT_DBTIMESTAMP 通过 SSIS 中的派生列进行转换的结果。但在我的情况下,我还需要添加 9AM: 9:00:00.000 的时间,因为平面文件源没有它。

所以在我的情况下,我有这个来自扁平字符串的例子:

5/9/80

我希望它在 SSIS 中如下 1980-05-09 9:00:00.000

有什么想法吗?

【问题讨论】:

    标签: sql ssis substring


    【解决方案1】:

    试试这个:

    DATEADD("HH",9,(DT_DBTIMESTAMP)((DT_STR,30,1252)(DT_DBDATE)([Create Date])))
    

    [创建日期]= 5/9/80

    【讨论】:

      【解决方案2】:

      使用数据转换首先将日期更改为 DT_DBTIMESTAMP,然后在表达式中使用带有以下内容的派生;

      DATEADD("Hh",9,[COLUMN])
      

      显然将列更改为数据流中的列。这应该在时间戳上增加 9 小时。

      【讨论】:

        【解决方案3】:
        DATEADD("Hh",9, (DT_DBDATE)("19" + SUBSTRING([col], 5, 2) + "-" + RIGHT("00" + REPLACE(SUBSTRING([col], 3, 2), "/", ""), 2) + "-" + RIGHT("00" + REPLACE(SUBSTRING([col], 1, 2), "/", ""), 2)))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-26
          • 2017-12-12
          • 2023-03-26
          • 2017-04-25
          • 2022-01-08
          相关资源
          最近更新 更多