1

我的数据源给了我一个类型的列,numeric(32,0)它是纪元值,我想将它转换为DATETIME我的数据库中的 a 。我有一个派生列转换,对于我试图这样做的表达式:

DATEADD("SECOND", CAST([Last Modified Date] AS BIGINT) / 1000, (DT_DBTIMESTAMP)"1970-01-01")

但它给了我解析错误。有人可以帮我使用正确的语法吗?如果我不引用"SECOND",那么它会立即告诉我 SECOND 不是输入列。

即使输入是numeric(32,0)类型,它们都是整数值,例如 1564371486110。

4

1 回答 1

1

我不立即了解您的演员表并除以 1000。

SSMS

select datediff(ss,  '1970-01-01 00:00:00', getdate())
1564069434

表达

dateadd("SS", 1564069434, (DT_DBTIMESTAMP)"1970-01-01 00:00:00")
2019-07-25 15:51:17.763

编辑 - 我将假设您在纪元时间除以毫秒。

派生列转换编辑器 - 表达式

 DATEADD("SS",(DT_UI8)SUBSTRING((DT_WSTR,32)epochtime,1,LEN(TRIM((DT_WSTR,32)epochtime)) - 3),(DT_DBTIMESTAMP)"1970-01-01 00:00:00")
于 2019-07-25T19:56:53.287 回答