【问题标题】:SSIS: Convert epoch column to dateSSIS:将纪元列转换为日期
【发布时间】:2019-02-19 21:26:31
【问题描述】:

我在名为“start_time”的列(名称包含“)中获得了一个包含 1970 年 1 月 1 日的纪元时间戳作为数据类型数字的列。我想创建一个数据类型为 DT_DBTIMESTAMP 的新列。我我目前创建了一个派生列转换,我已设置为使用以下表达式创建一个新列:

DATEADD(s,"start_time",'1970/01/01') 

我也试过这个:

DATEADD("s",(DT_NUMERIC, 18, 18)"start_time",(DT_DBTIMESTAMP)"1970-01-01 00:00:00")

第二个告诉我一个错误,日期类型不支持数据类型 DT_WSTR,但我不明白 DT_WSTR 来自哪里,因为“start_time”是数字。

这两个测试都给了我大量的错误信息。

【问题讨论】:

    标签: sql sql-server date ssis epoch


    【解决方案1】:

    这个表达式有效:

    DATEADD(second, start_time, '1970-01-01')
    

    比较完整的代码是:

    select start_time, DATEADD(second, start_time, '1970-01-01')
    from (select cast(1537009955 as decimal(18, 0)) as start_time) x;
    

    请注意,小数点是decimal(18, 0),而不是decimal(18, 18)。后者是一个介于 0 和 1 之间的数字。

    这是Rextester

    【讨论】:

      猜你喜欢
      • 2018-04-29
      • 1970-01-01
      • 2018-04-24
      • 2011-12-06
      • 1970-01-01
      • 2012-11-08
      • 2012-11-07
      • 2011-06-05
      • 2018-08-09
      相关资源
      最近更新 更多