SQL ServerC# DateTime类型和sqlserver DateTime精度不同

每当近期之花色被,
有只关于时间的效力。一个请假的时光。前端选择的时刻只有日期。所以按照要一天假就是择2017-8-15及2017-8-15,这样到底请立刻同样龙之假。但是后台存入数据库时我未能够便怀着2017-8-15
00:00:00与2017-8-15 00:00:00。这样区分无发时。

自打算一个即怀2017-8-15 00:00:00。另一个就2017-8-15
23:59:59眼看规范。这样子存进数据库。其他地方判断时才会确定是否以这时刻段内。

接下来我就夺百度了,直接找到这个代码,觉得颇合理就上了

toDate = toDate.Date.AddDays(1).AddMilliseconds(-1);

即使是加同天嘛,然后减去1毫秒
C#好看时间呢成变成

{2017-8-15 23:59:59}

相当棒,直接就是达,但是发现存进数据库里,时间成为了

{2017-8-16 00:00:00}

意识,datetime类型的时日精度是3.33毫秒,超过该精度会进行类似到0.000,0.003,0.007

因而存到SQL Server的时候给round到了2017/8/16 00:00:000000

解决智:
1、sqlserver DateTime换成datetime2类型(SQL Server
2008和以上版本才产生),这样C# 的日精度就和DateTime2的时精度相同了
2、我们也变更减1毫秒了、减1秒吧。这里拿AddMilliseconds改化AddSecond(-1)减1s好了。

PS.附上本身参考的文章,其实自己吗是寻觅什么找才晓得者原因的
http://www.cnblogs.com/yangecnu/p/Difference-between-DotNet-DateTime-and-SQLServer-datetime.html

相关文章