.NET entityframework for mysql ,datetime字段存储值时有误差
昨天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数据库未发现此问题(不知是否有相关设置之类,俺不纠结他了)
.NET entityframework for mysql ,datetime字段存储值时有误差的更多相关文章
- Mysql 修改字段默认值
环境:MySQL 5.7.13 问题描述:建表的时候,users_info表的role_id字段没有默认值,后期发现注册的时候,需要提供给用户一个默认角色,也就是给role_id字段一个默认值. 当前 ...
- 关于Mysql datetime类型存储范围测试
创建一个datetime表 > create table date_time(time datetime); > desc date_time; +-------+----------+- ...
- mySql一个字段的值模糊匹配多表多列的查询
1.dao层/** * 分页查询点卡集合信息 * @param tid 游戏类型编号 * @param gid 游戏编号 * @param searchInfo 包括(点卡名称,游戏名称,点卡面值,游 ...
- Mysql多字段模糊查询
MySQL同一字段多值模糊查询 一. 同一字段多值模糊查询,使用多个or进行链接,效率不高,但没有更好的解决方案.(有看到CHARINDEX 关键字,可查询结果并不是模糊,举个栗子 例如SELECT ...
- mysql的日期存储字段比较int,datetime,timestamp区别
1.首先是我们分析datetime长度是8个字节,INT的长度是4个字节,存储空间上比datatime少. 2.int存储索引的空间也比datetime少,排序效率高,查询速度比较快. 3.方便计算, ...
- [EntityFramework] 对 DateTime 类型使用 SQL 服务器时间或者字段默认值
DateTime 类型在 SQL 服务器上如果设置了默认值,在 EntityFramework 添加新行的时候想使用该默认值,则不能对新增加的实体的 DateTime 字段赋值. 但是如果新增加的实体 ...
- mysql变成类型字段varchar值更新变长或变短底层文件存储原理
为了搞清楚MySQL对于可变长度字段值修改时,如何高效操作数据文件的机制.之前一直模糊不清,网上也搜不到现成的答案.经过多方资料搜集整理.写出此文供大家一起参阅.由于涉及众多非常底层的知识,我假设读者 ...
- 【转】MySQL datetime数据类型设置当前时间为默认值
转自http://blog.csdn.net/u014694759/article/details/30295285 方法一: MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认 ...
- mysql配置与存储引擎与字段类型与约束条件
目录 字符编码与配置文件 存储引擎 创建表的完整语法 字段类型 整型 浮点型 字符类型 数字的含义 枚举与集合 日期类型 约束条件 字符编码与配置文件 在MySQL5.X系列中,显示的字符编码有多种, ...
随机推荐
- Hibernate温习(一)
//从学校出来几个月了,一直用maximo没有使用到Hibernate,趁着周末的空闲时间重新开始学习Hibernate. Hibernate概念: Hibernate是数据库访问层的框架,对JDBC ...
- 关于html自闭合标签要不要加空格和斜杠的问题?
问题描述:可能很多人都遇到过这个问题,写网页时,link img br input等等这些标签时到底要不要在结尾加上空格和斜杠呢? 我曾经貌似在<编写高质量代码>上看到过这样的介绍,遇到l ...
- Objective - C - 添加类目 - NSDate
1.类目为系统内部的类或者是没有源代码的类添加方法,不有添加实例变量 2.添加的方法会成为原类的一部分,子类照样可以使用 3.类目的文件名为原类名+文件名 4.既可以添加实例方法,也可以添加类方法 X ...
- linux 下 TeXmacs 作 Mathematica 10 的前端
TeXmacs可以作很多种数学软件的前端,比如maxima,octave,R等.甚至还可以作mathematica的前端.TeXmacs的mathematica 插件比较老,默认条件下无法运行math ...
- nodeJS环境
nodeJS官网:https://nodejs.org/en/, npm官网(node package manager):https://www.npmjs.com/ 进入nodejs官方网站下载软 ...
- android常用调试工具fiddle、wireshark和android studio的配置
Fiddle配置android代理 在wifi的同一个局域网环境的windows主机中安装fiddler,并且启动,如本次192.168.3.14 在android手机端配置代理为该主机 还有一种方式 ...
- VUE 入门基础(6)
六,条件渲染 v-if 添加一个条件块 <h1 v-if="ok">Yes</h1> 也可以用v-else 添加else 块 <template> ...
- Mathematica(MMA)闪电入门系列 目录与说明
Mathematica(MMA)闪电入门系列 入口 本文起到目录作用,点击以下链接,可以打开各章: 一.MMA概述二.表操作三.函数与递归四.表达式的计算五.过程式编程和调试技巧六.图形七.程序包 ...
- java MAVEN 项目出现红叉
pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w ...
- Linux C 开发环境配置
换了新电脑,重装了Fedora10,所有开发环境都要重新配置啦,开个随笔记录下过程,说不定以后还要用~ 首先Fedora10装好之后是不带 VIM 的,果断安装之: 打开终端,首先 su 命令切换到r ...