来自 csv 文件的 SQL 服务器日期时间的 SSIS Unix 时间戳

SSIS Unix timestamp to SQL Server datetime from csv file

我已经尝试了几种方法来让它工作,但到目前为止,使用派生列将 Unix 转换为日期时间都没有成功。

有问题的列作为 DT_WSTR(我也尝试过 DT_I4 和 DT_I8)和派生列加载然后应该用日期时间创建新列。

这是我目前拥有的:

DATEADD("ss", (dt_i4)[logged_date], (dt_date)("1970-01-01"))

当我尝试执行时,我在派生列中收到一个错误,它只是指出

"An error has occurred while evaluating the function"

如有任何帮助,我们将不胜感激。

如果您的时间戳以秒为单位

Select dateadd(SS,1476444566,'1970-01-01') Returns 2016-10-14 11:29:26.000

如果微秒(需要多一点工作d(

Declare @UnixTime bigint = 1470562081943371
Select DateAdd(MS,round(((@UnixTime/1000000.)-(@UnixTime/1000000))*1000,0),DateAdd(SECOND,(@UnixTime/1000000),'1970-01-01 00:00:00'))

找到我的问题。

原来有一行的 unix 日期为空值,这就是 SSIS 在转换时遇到问题的原因。

我已经设置了一个错误输出,以便在它再次发生时放入 excel 文件。

代码现在按预期运行。

感谢您提供的帮助。