将 Epoch 转换为 DateTime SQL Server

3

抱歉,我的标题中间断了。

我遇到了以下问题:

dateadd(S, [unixtime], '1970-01-01')

在 SQL Server 中将 epoch 转换为 datetime,但收到以下错误:

算术溢出错误,将表达式转换为数据类型 int。

显然这意味着 epoch 对于 int 来说太大了?尽管之前这段代码已经可以工作;令人费解。有没有一种方法可以使用 bigint 调用它?

例如 epoch:

1440753397054

我认为限制是10位数字,那么有什么替代方案吗?

1
你在 [unixtime] 中的典型值是什么?你确定它们是秒而不是毫秒,即 x1000 吗? - Micke
1个回答

2

您的时间戳以毫秒为单位。尝试将其除以1000,我相信它会起作用。

1440753397054 / 1000 = 1440753397.054 对应于(假设为GMT时区):

2015年8月28日星期五09:16:37 GMT


1
在SQL Server中测试过,需要在C#中删除最后3位数字,谢谢。 - thatguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接