2016-08-02 2 views
1

私は、JSの日時スタンプを1/1000の完全なミリ秒忠実度で記録しています。 私は、.NET System.DateTime structを使用していると私はないは、SQLに格納されたミリ秒を見てきたミリ秒でSqlDateTimeへのJavaScriptの日時スタンプ

(私は精度は1/300であることを理解SQLを使用して)。 C#の

//TimeCompleted is epoc 

    DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); 
    qr.ResponseTimeStamp = dtDateTime.AddMilliseconds(item.Responses.TimeCompleted); 

... 
[ResponseTimeStamp] DATETIME   NOT NULL, 
... 

私は今、問題はメソッドが例外をスローしていることである

SqlDateTime dtDateTime = new SqlDateTime(1970, 1, 1, 0, 0, 0, 0); 
qr.ResponseTimeStamp = SqlDateTime.Add(dtDateTime, item.Responses.TimeCompleted); 

System.Data.SqlTypes.SqlDateTimeを使用しようとしています:

"メッセージ" : "の最適オーバーロードメソッド'System.Data.SqlTypes.SqlDateTime.Add(System.Data.SqlTypes.SqlDateTime、 のSystem.TimeSpan)'

IはTimeSpanepocから変換しようとしたが、署名は私のTimeSpanを必要とします作成しますが、まだ例外がスローされます。

TimeSpan newSpan = new TimeSpan(0, 0, 0, 0, item.Responses.TimeCompleted); 

'System.Data.SqlTypes.SqlDateTime.Add(System.Data.SqlTypes.SqlDateTime、 のSystem.TimeSpan')のための最良のオーバーロードされたメソッドの試合は、いくつかの無効な引数

+0

SQL Server ** 2008 **以降を使用している場合は、代わりに 'DATETIME2(n)'を使用してください - これは100ns(必要な場合)までの精度を備えていますので、ミリ秒単位で処理します –

答えて

2
を持っています

時間をミリ秒単位で保存する必要がある場合は、データにdatetime2またはdatetimeoffsetを使用する必要があります。

これらの両方のタイプでは、3ミリ秒の分解能しかないDateTimeとは異なり、ミリ秒までの精度が可能です。