3

EPOCH を SQL Server 日時に変換するために既に与えられた多くの回答を試しました。これらは、EPOCH が最大 10 億秒のときに機能します。しかし、1 兆ドルを超えるとすぐに破綻します。例 -->

1. SELECT dateadd(MCS,1351187877744,'1970-01-01')
2. SELECT dateadd(NS,1351187877744,'1970-01-01')
3. SELECT dateadd(NANOSECOND, 1351187877744, '1970-01-01 00:00:00.0000000')
4. SELECT convert(bigint, datediff(ss, '01-01-1970 00:00:00',1351187877744))

上記のすべてが次のオーバーフロー エラーで失敗します: 「式をデータ型 int に変換する算術オーバーフロー エラー」。

興味深いことに、このサイトでこの日付を入力すると、正しい値が返されます。

任意の大きさ (> 兆秒など) の EPOCH で機能する方法でこれを行う方法の提案

4

3 に答える 3

2

この関数を作成するだけです

CREATE FUNCTION convertEpoch 
(@epochVal bigint) RETURNS datetime 
AS BEGIN DECLARE @Return datetime
SELECT @return = dateadd(s,@epochVal/1000,'1970-01-01')
RETURN @return END
于 2014-05-09T17:41:04.597 に答える