网站首页 > 知识剖析 正文
今天在测试更新 SqlServer 表的 datetime 字段时,突然发现并没有更新成功,同时也没有报错,感觉十分诧异,因此仔细排查了一下,终于发现是和字段本身的精度有关。
现象
假设我们现在有一张 SqlServer 表 basic_info,其表结构为:
字段名 类型 name varchar open_time datetime
现在其中有一条数据:
name open_time Jack 2014-05-25 11:11:01.260
现在我想把这条数据的 open_time 字段修改为 2014-05-25 11:11:01.262,执行语句:
update basic_info set open_time = '2014-05-25 11:11:01.262' where name = 'Jack';
结果是并没有更新为我想要的值:
name open_time Jack 2014-05-25 11:11:01.263
这个 263 是怎么出现的呢?
原因
这个问题我排查了很久,最终在关于 datetime 字段定义 的网站上,在关于字段描述的表中,有这么一行:
Accuracy Rounded to increments of .000, .003, or .007 seconds
意思就是说, datetime 这个字段的 精度 ,四舍五入后会变为 .000, .003, or .007 秒。
这样的话,也就能说这个字段的时间毫秒数的个位数,只会是 0、3、7,那么也就能解释上面的现象,为什么我想更新成 2,最终变成了 3。
解决方法
当你对于精度要求不高的话,比如只需要精确到秒级别,那么这个字段的使用完全是没有问题的。
但如果你一定需要精确到毫秒呢?那么可以使用 datetime2 类型,它的精度可以精确到 100 纳秒。
总结
对于服务端开发人员,数据库几乎是一个无法避免的中间件,虽然我们并非专业的 DBA,但多了解一些总是好事。
有兴趣的话可以访问我的博客或者关注我的公众号、头条号,说不定会有意外的惊喜。
https://death00.github.io/
公众号:健程之道
猜你喜欢
- 2025-07-08 SQL复杂查询(sqlserver 复杂查询)
- 2025-07-08 揭秘:一条SQL语句的执行过程是怎么样的?
- 2025-07-08 数据库设计规范——3. SQL语句(数据库设计规则)
- 2025-07-08 SQLServer修改端口的方法(sqlserver数据库端口怎么修改)
- 2025-07-08 程序员总结的常用sql语句大全(程序员case)
- 2025-07-08 springboot使用mybatis插件动态修改sql
- 2025-07-08 Oracle查询语句,你知道几个?(oracle查询技巧)
- 2025-07-08 升级SQL Server数据库后修改兼容级别及所有者
- 2025-07-08 SQL语句(sql语句执行顺序)
- 2025-07-08 SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!
- 07-09带你看好玩的CSS-霓虹灯按钮(css霓虹灯效果的文字)
- 07-0910个冷门但非常实用前端开发者很少用的CSS规则
- 07-09大厂都在用的10个css高级技巧,我敢说你最多用过3个!不服来辩!
- 07-092025年Top30 CSS面试题及答案(css笔试题)
- 07-09ASP.NET Core Web API 接口限流(asp.net core web api教程)
- 07-09C# ASP.NET Core Web Api 与 MVC 模式下 body 参数传递,post 参数方式
- 07-09ASP.NET Core Web API 中的 JSON 修补程序
- 07-09Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用
- 最近发表
-
- 带你看好玩的CSS-霓虹灯按钮(css霓虹灯效果的文字)
- 10个冷门但非常实用前端开发者很少用的CSS规则
- 大厂都在用的10个css高级技巧,我敢说你最多用过3个!不服来辩!
- 2025年Top30 CSS面试题及答案(css笔试题)
- ASP.NET Core Web API 接口限流(asp.net core web api教程)
- C# ASP.NET Core Web Api 与 MVC 模式下 body 参数传递,post 参数方式
- ASP.NET Core Web API 中的 JSON 修补程序
- Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用
- 深入了解 ASP.NET Core 中的 IWebHostEnvironment 接口
- ASP.NET WebForms功能增强(三)(asp net web)
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)