SSIS:将纪元列转换为日期

Posted

技术标签:

【中文标题】SSIS:将纪元列转换为日期【英文标题】:SSIS: Convert epoch column to date 【发布时间】: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”是数字。

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

【问题讨论】:

【参考方案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。

【讨论】:

以上是关于SSIS:将纪元列转换为日期的主要内容,如果未能解决你的问题,请参考以下文章

将纪元时间戳列转换为带有时区的日期时间

将具有日期和纪元格式值的字符串列转换为 postgresql/Tableau prep 中的日期列

如何将 df 中的列转换为具有日期时间格式的纪元,反之亦然?

在 Python 中将一列日期时间转换为纪元

如何使用 Java 将 unix 纪元的列转换为 Apache spark DataFrame 中的日期?

使用SSIS包将csv列转换为表列的日期格式?