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 中的列转换为具有日期时间格式的纪元,反之亦然?