zoukankan      html  css  js  c++  java
  • datetime值毫秒四舍五入

    问题:

    MySQL5.6 版本。datetime 字段类型支持6位毫秒级别。

    当从5.5升级以后,插入的值可能会被四舍五入(太坑!!!)

    # 实例1,  MySQL 5.6

    CREATE TABLE szy (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `gmt_create` datetime DEFAULT NULL,           #5.6 版本 定义格式为 date time(6) ,保留6位毫秒数值。不加表示不保留毫秒
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

    > insert into szy select 1,'2018-08-28 23:59:59.999';

    > select * from szy;
    +----+---------------------+
    | id | gmt_create |
    +----+---------------------+
    | 1 | 2018-08-29 00:00:00 |.       # 字段值变了!!!
    +----+---------------------+
    1 row in set (0.00 sec)

    # 实例2,MySQL5.6

    CREATE TABLE szy (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `gmt_create` datetime(3) DEFAULT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

    > insert into szy select 1,'2018-08-28 23:59:59.999';

    > insert into szy select 2,'2018-08-28 23:59:59.999999';

    > insert into szy select 3,'2018-08-28 23:59:59';

    > select * from szy;


    +----+-------------------------+
    | id | gmt_create |
    +----+-------------------------+
    | 1 | 2018-08-28 23:59:59.999 |
    | 2 | 2018-08-29 00:00:00.000 |      # 又变了!!!
    | 3 | 2018-08-28 23:59:59.000 |
    +----+-------------------------+
    3 rows in set (0.00 sec)

    > select * from szy where gmt_create='2018-08-28 23:59:59';    #查询还有精确度要求
    +----+-------------------------+
    | id | gmt_create |
    +----+-------------------------+
    | 3 | 2018-08-28 23:59:59.000 |
    +----+-------------------------+

    总结:

    1、MySQL 5.6 版本 datetime 最多支持6位毫秒,设置几位,业务在写入时候,就要写几位。不能比设置的位数多,否则会出现四舍五入的情况。

    2、查询有精确度限制。

  • 相关阅读:
    ACM的探索之Keen On Evrything But Triangle(我觉得可以很接近啦!!)
    ACM的探索之Just Skip The Problem
    ACM的探索之Everything Is Generated In Equal Probability(这真的是很有趣的话语丫!)
    心情散记
    识别有效的IP地址和掩码并进行分类统计
    网络流复习计划
    CF1076D Edge Deletion
    bzoj4563 HAOI2016放旗子
    BZOJ2152聪聪可可
    BZOJ3224普通平衡树
  • 原文地址:https://www.cnblogs.com/xingxiz/p/9722797.html
Copyright © 2011-2022 走看看