【问题标题】:Epoch Date Conversion to SQL Server纪元日期转换为 SQL Server
【发布时间】:2015-07-13 01:16:04
【问题描述】:

美好的一天,

我有一个问题。这些是什么类型的纪元日期以及如何将它们转换为 SQL Server datetime 格式。

37564691530
37564704499
37564708633
37564721033
37564743361
37564746236

我已经用谷歌搜索了 2 天,除了这个公式之外找不到任何东西,当我尝试转换它时,它会给我一个算术溢出消息。

select 
    DATEADD(ss, 37564691530 - 3600 * 5, CONVERT(DATETIME, '1900-01-01 00:00:00', 102)) 

任何帮助将不胜感激。

【问题讨论】:

    标签: sql-server-2008 datetime epoch


    【解决方案1】:

    13 位 epoch 表示总 毫秒 10 位 epoch 表示总 。你有第一个 - 毫秒。 并且 sql DateAdd 函数接受第二个参数(增量)作为整数。您尝试传递一个 bigint 值。这就是为什么抛出算术溢出错误。

    试试这个

    DECLARE @MS BIGINT
    SET @MS = 37564746236
    select DATEADD(SECOND, @MS / 1000, '1970-01-01')
    

    【讨论】:

    • 但是,请just type out SECOND...
    • 您好 Musthaan,感谢您的帮助。我已经尝试过你的功能并且它有效,我唯一无法解决的是 37564746236 的值实际上等于 2015-04-26 00:00:00 和 2015-04-26 23 之间的某个日期:59:59。纪元日期应该是 1990-01-01 但它仍然输出日期 '1971-03-11 18:39:06.000' 有什么想法吗?这真的让我发疯:)
    猜你喜欢
    • 1970-01-01
    • 2021-05-26
    • 2016-10-14
    • 2018-04-29
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多