我的数据源给了我一列类型为 numeric(32,0)
的列,即纪元值,我想将其转换为数据库中的DATETIME
。 我有一个派生列转换,对于表达式,我尝试这样做:
DATEADD("SECOND", CAST([Last Modified Date] AS BIGINT) / 1000, (DT_DBTIMESTAMP)"1970-01-01")
但它给了我解析错误。 有人可以帮助我正确语法吗?如果我不引用"SECOND"
那么它会立即告诉我 SECOND 不是输入列。
即使输入是numeric(32,0)
类型,它们也是整数值,例如1564371486110。
我不会立即理解您的演员阵容并除以 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")