某某茶叶有限公司欢迎您!
金沙棋牌在线 > 必赢棋牌官网 > DateTime的精度小问题

DateTime的精度小问题

时间:2020-02-15 04:15

一般来说判断时间的话,用个DateTime类型就已经够用了。但是有些情况,比如下面这种

在最近的项目中, 有个关于时间的功能。一个请假的时间。前端选择的时候只有日期。所以比如请一天假就是选2017-8-15和2017-8-15,这样算请这一天的假。但是后台存入数据库时我不能就存2017-8-15 00:00:00和2017-8-15 00:00:00。这样区分不出时间。

DECLARE @DT1 DATETIMEDECLARE @DT2 DATETIME SELECT @DT1 = '2014-12-22 15:45:00:128', @DT2 = '2014-12-22 15:45:00:126' IF @DT1 > @DT2   SELECT GETDATE() 

我打算一个就存2017-8-15 00:00:00。另一个就2017-8-15 23:59:59这样子。这样子存进数据库。其他地方判断时才能确定是否在这个时间段内。

查出来的结果却是空的~咦??

然后我就去百度了,直接找到这个代码,觉得很合理就上了、

 

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

然后发现应该是精确度的问题了。查了一下文档发现确实是,然后上图(感谢万能的联机文档)

就是加一天嘛,然后减去1毫秒
C#中看时间也成功变成

图片 1

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

 

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

如果却是有这个需要,可以将DateTime 改为 DateTime2.精度更高

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

 

发现,datetime类型的时间精度是3.33毫秒,超过该精度会进行近似到0.000,0.003,0.007 秒