在 SQL 服务器中转换 bigint 纪元
Convert bigint epoch in SQL Server
当我在 Azure 数据仓库中将 unix 纪元时间戳转换为正常日期时间时,我 运行 遇到了麻烦:
select
dateadd(s, convert(bigint, 2551564800), convert(datetime, '1-1-1970 00:00:00')) as bigint
错误:
Arithmetic overflow error converting expression to data type int.
值 2551564800 等于 09/11/2050。
任何帮助将不胜感激
如果 你没有大于 5103129600
的纪元值(这将允许你有最多 2106-02-07T06:28:13
的日期)这将起作用:
SELECT DATEADD(SECOND,2551564800 % 2147483647, DATEADD(SECOND,2147483647 * (V.Epoch / 2147483647),'19700101'))
FROM (VALUES(CONVERT(bigint,2551564800))) V(Epoch)
当我在 Azure 数据仓库中将 unix 纪元时间戳转换为正常日期时间时,我 运行 遇到了麻烦:
select
dateadd(s, convert(bigint, 2551564800), convert(datetime, '1-1-1970 00:00:00')) as bigint
错误:
Arithmetic overflow error converting expression to data type int.
值 2551564800 等于 09/11/2050。
任何帮助将不胜感激
如果 你没有大于 5103129600
的纪元值(这将允许你有最多 2106-02-07T06:28:13
的日期)这将起作用:
SELECT DATEADD(SECOND,2551564800 % 2147483647, DATEADD(SECOND,2147483647 * (V.Epoch / 2147483647),'19700101'))
FROM (VALUES(CONVERT(bigint,2551564800))) V(Epoch)