.NET entityframework for mysql ,datetime字段存储值时有误差
2017-01-04 11:39
483 查看
昨天Tester发现数据有问题,大部分时间“datetime类型”都多了一秒,很少一部分数据的时间能完全对上(年月日时分秒),因为缺少关键日志,就各种排查,最后发现在调用Savechange方法前一刻数据都是对的,然后去数据库查询,数据就对不上了:时间多了一秒
骂娘之后,开始分析存储的Datetime对象(抽取了两个代表)
数据1:
{1/3/2017 5:50:04 PM}
Date: {1/3/2017 12:00:00 AM}
dateData: 9859562662895793936
Day: 3
DayOfWeek: Tuesday
DayOfYear: 3
Hour: 17
InternalKind: 9223372036854775808
InternalTicks: 636190626041018128
Kind: Local
Millisecond: 101
Minute: 50
Month: 1
Second: 4
Ticks: 636190626041018128
TimeOfDay: {17:50:04.1018128}
Year: 2017
数据2:
{1/3/2017 5:52:35 PM}
Date: {1/3/2017 12:00:00 AM}
dateData: 9859562664412782254
Day: 3
DayOfWeek: Tuesday
DayOfYear: 3
Hour: 17
InternalKind: 9223372036854775808
InternalTicks: 636190627558006446
Kind: Local
Millisecond: 800
Minute: 52
Month: 1
Second: 35
Ticks: 636190627558006446
TimeOfDay: {17:52:35.8006446}
Year: 2017
看了部分数据之后,第一反应就是四舍五入了(红色部分)
继续验证猜测:将Datetime对象的毫秒置0
再次大量数据测试,完全正确,问题算是解决了。
至于在哪个环节对数据进行了四舍五入,Google一下,未发现目标就没在继续纠结了。
同样,Firebird数据库未发现此问题(不知是否有相关设置之类,俺不纠结他了)
骂娘之后,开始分析存储的Datetime对象(抽取了两个代表)
数据1:
{1/3/2017 5:50:04 PM}
Date: {1/3/2017 12:00:00 AM}
dateData: 9859562662895793936
Day: 3
DayOfWeek: Tuesday
DayOfYear: 3
Hour: 17
InternalKind: 9223372036854775808
InternalTicks: 636190626041018128
Kind: Local
Millisecond: 101
Minute: 50
Month: 1
Second: 4
Ticks: 636190626041018128
TimeOfDay: {17:50:04.1018128}
Year: 2017
数据2:
{1/3/2017 5:52:35 PM}
Date: {1/3/2017 12:00:00 AM}
dateData: 9859562664412782254
Day: 3
DayOfWeek: Tuesday
DayOfYear: 3
Hour: 17
InternalKind: 9223372036854775808
InternalTicks: 636190627558006446
Kind: Local
Millisecond: 800
Minute: 52
Month: 1
Second: 35
Ticks: 636190627558006446
TimeOfDay: {17:52:35.8006446}
Year: 2017
看了部分数据之后,第一反应就是四舍五入了(红色部分)
继续验证猜测:将Datetime对象的毫秒置0
再次大量数据测试,完全正确,问题算是解决了。
至于在哪个环节对数据进行了四舍五入,Google一下,未发现目标就没在继续纠结了。
同样,Firebird数据库未发现此问题(不知是否有相关设置之类,俺不纠结他了)
相关文章推荐
- mysql主从复制(测试版)
- mysql 优化--定位慢查询
- mysql常用命令
- mysql show processlist命令 详解
- mysql默认编码为UTF-8 通过修改my.ini实现方法
- B+/-Tree原理及mysql的索引分析
- MYSQL服务器my.cnf配置文档详解
- mysql5.6 主从同步
- Mysql5.7添加用户
- nodeJS操作MySQL
- MYSQL多实例配置方法 mysqld_multi方法
- node.js中mysql数据库连接池
- Node.js的mysql数据库操作
- 《MySQL必知必会》学习笔记
- MYSQL多实例配置方法 mysqld_multi方法
- mysql常见问题整理
- MySQL数据库权限与安全设置详解
- 百度查询复制粘贴: MySQL 中取子串函数 SUBSTR(SUBSTRING)
- MySQL frm+ibd文件还原data的办法【数据恢复】
- mysql查询结果输出到文件的方法