我有JS日期时间戳用完整的毫秒保真度1/1000记录。 (使用SQL据我所知,精度为1/300)JavaScript日期时间戳到SqlDateTime以毫秒为单位
我一直在使用.NET System.DateTime struct
,我有不已经看到存储在SQL毫秒。
...
[ResponseTimeStamp] DATETIME NOT NULL,
...
用C#
//TimeCompleted is epoc
DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
qr.ResponseTimeStamp = dtDateTime.AddMilliseconds(item.Responses.TimeCompleted);
我现在想用System.Data.SqlTypes.SqlDateTime
与
SqlDateTime dtDateTime = new SqlDateTime(1970, 1, 1, 0, 0, 0, 0);
qr.ResponseTimeStamp = SqlDateTime.Add(dtDateTime, item.Responses.TimeCompleted);
的问题是,该方法抛出异常:
“消息” :“最好的重载方法匹配 'System.Data.SqlTypes.SqlDateTime.Add(System.Data.SqlTypes.SqlDateTime, System.TimeSpan)'
我试图转换从epoc
到TimeSpan
,但签名需要时间跨度,我创建但仍会抛出异常。
TimeSpan newSpan = new TimeSpan(0, 0, 0, 0, item.Responses.TimeCompleted);
为 'System.Data.SqlTypes.SqlDateTime.Add(System.Data.SqlTypes.SqlDateTime, System.TimeSpan)' 最好的重载的方法匹配具有一些无效参数
如果您使用的是SQL Server ** 2008 **或更新的版本,请改用'DATETIME2(n)' - 它的准确度低至100ns(如果需要) - 因此它会处理毫秒 –