总结背景: 对于MYSQL数据库日期类型或多有了解, 但并很清晰其中一些规则. 基本都是面向浏览器编码, 这实质上也是一种方式. 但期间遇到两个问题:
时常遇到建表中出现多个datetime或者timestamp字段并使用 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP时报错, 难以查到原因, 最后粗暴的直接去掉
查询网络非官方文档知识点不全, 越查越糊涂
因为这两点 促使我硬着头皮查看MYSQL的官方文档 虽然刚开始很难受 结果的确收获颇多. 以下是我的一点总结:
1、类型简介
1.1、存储使用的长度
MySQL 5.6.4版本之后允许TIME、TIMESTAMP、DATETIME类型具有[0-6]位小数部分(Fractional Seconds in Time Values), 因而存储使用长度为变化的
Data TypeStorage Required Before MySQL 5.6.4Storage Required as of MySQL 5.6.4
1 byte
1 byte
3 bytes
3 bytes
3 bytes
3 bytes + fractional seconds storage
8 bytes
5 bytes + fractional seconds storage
4 bytes
4 bytes + fractional seconds storage
例如 time类型使用3 bytes存储, 加上小数部分长度. 而需要多少长度,取决于小数的长度:
Fractional Seconds PrecisionStorage Required
0
0 bytes
1, 2
1