Sql server 2008 到SQL Server的历元日期转换

Sql server 2008 到SQL Server的历元日期转换,sql-server-2008,datetime,epoch,Sql Server 2008,Datetime,Epoch,你好 我有个问题。这些是什么类型的历元日期,以及如何将它们转换为SQL Serverdatetime格式 37564691530 37564704499 37564708633 37564721033 37564743361 37564746236 我在谷歌上搜索了两天,除了这个公式,什么都找不到。当我试图转换这个公式时,这个公式会给我一个算术溢出信息 select DATEADD(ss, 37564691530 - 3600 * 5, CONVERT(DATETIME, '1900

你好

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

37564691530
37564704499
37564708633
37564721033
37564743361
37564746236
我在谷歌上搜索了两天,除了这个公式,什么都找不到。当我试图转换这个公式时,这个公式会给我一个算术溢出信息

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

非常感谢您的帮助。

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

试试这个

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

但是,请……嗨,穆斯塔汉,谢谢你的帮助。我已经尝试过你的函数,它是有效的,我唯一不能计算的是37564746236的值实际上等于2015-04-26 00:00:00和2015-04-26 23:59:59之间的某个日期。大纪元日期应该是1990-01-01,但它仍然输出“1971-03-11 18:39:06.000”的日期。有什么想法吗?这真让我抓狂:)