gpt4 book ai didi

sql-server - 将 Epoch 转换为 DateTime SQL Server(超过 2038 年)

转载 作者:行者123 更新时间:2023-12-04 14:27:40 24 4
gpt4 key购买 nike

如果纪元超过 2038 年,如何将纪元转换为 DateTime SQL Server?

答案在 Convert Epoch to DateTime SQL Server不管用。

例子:

SELECT DATEADD(ss, 2713795200000 / 1000, '19700101')

2055 年 12 月 30 日星期四 16:00:00 GMT

最佳答案

DATEADD 函数假定 INT 作为日期的增量,为了绕过 INT 的限制,您可以降低 epoch 的精度,或者执行稍微复杂的代码以保留 epoch 的精度。

这将精度降低到分钟:

SELECT DATEADD(MINUTE,@YourEpoch/60/1000, '1/1/1970')

这个将您的纪元分为几天和几毫秒,然后将它们组合在一个日期时间中
CREATE FUNCTION [dbo].[fn_EpochToDatetime] (@Epoch BIGINT)
RETURNS DATETIME
AS
BEGIN
DECLARE @Days AS INT, @MilliSeconds AS INT
SET @Days = @Epoch / (1000*60*60*24)
SET @MilliSeconds = @Epoch % (1000*60*60*24)

RETURN (SELECT DATEADD(MILLISECOND, @MilliSeconds, DATEADD(DAY, @Days, '1/1/1970')))
END;

但是,我不太确定为什么第二个解决方案没有我预期的那么精确。

关于sql-server - 将 Epoch 转换为 DateTime SQL Server(超过 2038 年),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37300536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com