最近使用sqlserver 2012的时候注意到datetime类型的毫秒的精度是存在问题的,好奇是怎么回事,特意来研究一下

问题复现

如下的sql执行

UPDATE AlarmItem SET create_time = '2024-01-01 00:00:00.000' Where id=1;
UPDATE AlarmItem SET create_time = '2024-01-01 00:00:00.001' Where id=2;
UPDATE AlarmItem SET create_time = '2024-01-01 00:00:00.002' Where id=3;
UPDATE AlarmItem SET create_time = '2024-01-01 00:00:00.003' Where id=4;
UPDATE AlarmItem SET create_time = '2024-01-01 00:00:00.004' Where id=5;
UPDATE AlarmItem SET create_time = '2024-01-01 00:00:00.005' Where id=6;
UPDATE AlarmItem SET create_time = '2024-01-01 00:00:00.006' Where id=7;
UPDATE AlarmItem SET create_time = '2024-01-01 00:00:00.007' Where id=8;
UPDATE AlarmItem SET create_time = '2024-01-01 00:00:00.008' Where id=9;
UPDATE AlarmItem SET create_time = '2024-01-01 00:00:00.009' Where id=10;
select id,create_time from AlarmItem where id in (1,2,3,4,5,6,7,8,9,10)

不点开下面的执行结果,想想看,觉得答案会是怎么样?

点击查看执行结果
1	2024-01-01 00:00:00.000
2 2024-01-01 00:00:00.000
3 2024-01-01 00:00:00.003
4 2024-01-01 00:00:00.003
5 2024-01-01 00:00:00.003
6 2024-01-01 00:00:00.007
7 2024-01-01 00:00:00.007
8 2024-01-01 00:00:00.007
9 2024-01-01 00:00:00.007
10 2024-01-01 00:00:00.010

可以注意到,数据并没有按照我们期望的那样,例如001 存入后变成了000 而002变成了003,这个原因是什么呢?

探究原因

翻看微软的官方文档可以发现在SQL Server中,DateTime的精度是3.33毫秒,也就是存在精度丢失的情况

同时微软自己定义了关于DateTime时间舍入的规则

总结一下就是:

9进0

0、1舍入为0

2、3、4舍入为3

5、6、7、8舍入为7

【SqlServer】datetime存储精度问题探究的更多相关文章

  1. C# DateTime类型和sqlserver DateTime精度不同

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

  2. mssql sqlserver 可以存储二进制数据的字段类型详解

    转自: http://www.maomao365.com/?p=6738 摘要: 下文将从数据库的数据类型着手,剖析在sqlserver数据库中可以存储二进制数据的数据类型,如下所示: mssql s ...

  3. #define与运算精度问题探究

    #include <stdio.h> #define SQR(X) X*X int main(int argc, char* argv[]) { ; ; ; printf("SQ ...

  4. Sqlserver数据库存储路径的修改

    Sqlserver数据库存储路径的修改 Sqlserver数据库存储路径问题:本系统sqlserver路径默认是存储在C盘目录下的,由于数据会慢慢变大和避免重装系统数据丢失等问题,最好手动将路径设置在 ...

  5. sqlserver datetime的bug

    sqlserver datetime 的毫秒的个位似乎存在bug,只有0.3.7这三个值,比如: 2018-01-20 23:59:59:999会变成2018-01-21 00:00:00.000 2 ...

  6. sqlserver datetime的bug?

    sqlserver datetime 的毫秒的个位似乎存在bug,只有0.3.7这三个值,比如: 2018-01-20 23:59:59:999会变成2018-01-21 00:00:00.000 2 ...

  7. 深入理解Sqlserver文件存储之页和应用 (转)

    我们每天都在使用数据库,我们部门使用最多的关系数据库有Sqlserver,Oracle,有没有想过这些数据库是怎么存放到操作系统的文件中的?有时候为了能够设计出最优的表结构,写出高性能的Sqlserv ...

  8. DateTime的精度小问题

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

  9. Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”

    工作中遇到一个问题,A表中字段(DateTime1)的数据类型为DateTime,新建了一张表B的SMALLDATETIME1字段的数据来自A表的DateTime1 但在将A表字段DateTime1导 ...

  10. datetime的精度

    最近有需要将分钟线的数据进行内联拼接,但时间没有必要精确到秒,微秒. df['datetime'] = pd.to_datetime(df['datetime']) df = df.set_index ...

随机推荐

  1. 小程序获取定位完整的封装js(uniapp)

    1.小程序获取定位,首先需要在微信公众平台,申请getLocation接口(开发管理->接口设置) 2.在manifest.json打开源码视图,增加代码 "mp-weixin&quo ...

  2. vue基础3

    1.watch 案例:百度搜索框 注释的是用watch实现的 然后这个我用的是oninput事件 a.深浅监听 浅监听 深监听(不建议使用) 2.过滤器 全局: Vue.fliter('过滤器名字', ...

  3. k8s列出所有未配置探针的deployment

    在 Kubernetes 中,探针(Probes)用于检测容器的健康状态,主要包括以下三种: Liveness Probe(存活探针):检测容器是否正在运行. Readiness Probe(就绪探针 ...

  4. sax, dom, jdom技术对比

    ---- sax, dom, jdom技术的优缺点比较 SAX分析器在对XML文档进行分析时,触发一系列的事件,应用程序通过事件处理函数实现对XML文档的访问.由于事件触发本身是有时序性的,因此,SA ...

  5. javascript对象学习笔记

    目前所见的,在普通的JavaScript应用中和绝大多数人一样使用的是全局的方式.大概是因为JavaScript所定义的变量或函数默认就是全局的.为了是代码不至于太凌乱,变量不至于稀里糊涂的就被人重定 ...

  6. 修改Maven仓库到国内

    修改Maven仓库到国内 Maven home directory:选择已安装的Maven目录. User settings file:根据安装Maven自动显示的配置文件settings.xml路径 ...

  7. SSH 跳板机原理与配置:实现无缝跳板连接,一步直达目标主机

    前言 在日常运维或开发工作中,我们常常需要访问部署在内网的服务器.然而出于安全策略或网络拓扑的限制,内网服务器并不会直接向外部暴露端口,导致我们无法"直连"它们.此时,跳板机(Ju ...

  8. 初探ASP.NET Core 3.x (2) - ASP.NET Core与ASP.NET前世今生

    本文地址:https://www.cnblogs.com/oberon-zjt0806/p/12210662.html 注意 本节是历史课,且绝大多数内容来自于百科或者其他的什么资料来源,如果不感兴趣 ...

  9. java http协议,添加header以及post传参,以及服务端获取

    一.客户端请求 public static String test(){ JSONObject obj = new JSONObject(); obj.put("cusName", ...

  10. 收集 Spring Boot 相关的学习资料

    收集 Spring Boot 相关的学习资料,Spring Cloud点这里 重点推荐:Spring Boot 中文索引 推荐博客 纯洁的微笑-Spring Boot系列文章 林祥纤-从零开始学Spr ...