关于mysql中的时间进位问题的讲解


本文摘自PHP中文网,作者V,侵删。

mysql更新到5.6.4 之后 , 新增了一个叫factional seconds的特性 , 可以记录时间的毫秒值。但是目前的数据库是不记录毫秒值的 , 所以会产生一个java中时间的Milliseconds超过500就会四舍五入的问题。

下面是一个例子,演示了时间是如何进位的。首先创建一张表:

1

2

3

4

5

6

7

8

CREATE TABLE test_time (

 time_sec   datetime,

 time_millis datetime(3),

 time_micros datetime(6),

 stamp_sec  timestamp,

 stamp_millis timestamp(3),

 stamp_micros timestamp(6)

);

有的小伙伴可能不知道 datetime 和 timestamp 定义时是可以带精度的,精度值为 0~6,表示保留几位小数,默认值为 0。显然保留 3 位可看作精度为毫秒,保留 6 位可看作精度为微秒。

(在线学习视频教程推荐:mysql视频教程)

然后我们插入一条记录:

1

2

3

4

5

6

7

8

9

10

11

INSERT INTO test_time

( time_sec, time_millis, time_micros,

 stamp_sec, stamp_millis, stamp_micros )

VALUES(

 '2019-11-30 12:34:56.987654',

 '2019-11-30 12:34:56.987654',

 '2019-11-30 12:34:56.987654',

 '2019-11-30 12:34:56.987654',

 '2019-11-30 12:34:56.987654',

 '2019-11-30 12:34:56.987654'

);

然后再做一次 select * from test_time 查询就能看到下面的结果:

1

2

3

time_sec             |time_millis            |time_micros               |stamp_sec            |stamp_millis           |stamp_micros              |

---------------------|-----------------------|--------------------------|---------------------|-----------------------|--------------------------|

2019-11-30 12:34:57.0|2019-11-30 12:34:56.988|2019-11-30 12:34:56.987654|2019-11-30 12:34:57.0|2019-11-30 12:34:56.988|2019-11-30 12:34:56.987654|

可以看到 time_sec 和 stamp_sec 在数据库中的秒值都被进位了,time_millis 和 stamp_millis 的毫秒值都被进位了。

由此可见,要避免这样的误差,有两个手段:

1、定义字段的时候使用 datetime(6) 或 timestamp(6);

2、定义字段时不带精度,但在将时间存入数据库之前,要将毫秒值截取掉。

相关文章教程推荐:mysql教程

以上就是关于mysql中的时间进位问题的讲解的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

mysql中的权限详解

mysql之库表操作的实例代码

详解 mysql 5.7 优化:explain 执行计划

mysql如何使用aes_encrypt()与aes_decrypt()进行加解密的示例

mysql可视化管理工具phpmyadmin的学习

关于mysql涉及锁的问题详解

mysql8.0.20下载安装及遇到的问题(图文详解)

mysql数据库】第四章解读:schema与数据类型优化(下)

mysql关闭后自动重启怎么办

mysql5.5怎么安装

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...