Java开发中一起MySQL时间戳精度引发的血案( 四 )
聪明如你一定发现了,这里的datetime已经支持小数点后更小的时间精度了,最多支持6位即最多可以支持到微妙级别。这个特性是什么时候引入的呢,我去查阅了[MySQL的官方文档][9],发现这个特性是在mysql 5.6.4之后开始支持的。
知识点总结
经过了前面的实际案例分析和案例复现,想必读者已经对mysql中DATETIME这个类型有了一定的认识,接下来跟我一起看下,我们从这个案例中可以总结出哪些经验。
mysql-connector-java的版本和mysql的版本需要配套使用,例如5.6.4之前的版本,就最好不要使用mysql-connector-java的5.1.23之后的版本,否则就可能会遇到我们这次遇到的问题。MySQL中用来表示时间的字段类型有:DATE、DATETIME、TIMESTAMP,它们之间有相同点,各自也有自己的特性,我总结了一个表格,如下所示:
DATETIME类型在MySQL中是以“YYYYMMDDHHMMSS”格式的整数存放的,与时区无关,使用8个字节的空间;
TIMESTAMP类型可以保存的时间范围要小很多,显示的值依赖时区,MySQL的服务器、操作系统以及客户端连接都有时区的设置。一般情况下推荐使用DATETIME作为时间戳字段,不推荐使用bigint类型来存储时间。在开发中,应该尽量避免使用时间戳作为查询条件,如果必须要用,则需要充分考虑MySQL的精度和查询参数的精度等问题。了解详情
推荐阅读
- 宿舍|哈利波特:宿舍龙蛋全攻略,带上你的小伙伴,一起拿走奖励吧
- 魔兽世界|《轨迹》新作明年发布! 法老控将针对NS平台开发游戏
- 手机游戏|CFHD:神秘组织为什么开发生化手雷呢?关键是为了赚更多钱
- edg战队|原神2.4卡池终于曝光,3位新老婆角色一起up,云堇是5星风属性主c角色!
- ag战队|AG不敌XYG,梦泪气到下播,阿泽:首发阵容是大家一起确定的
- faker|SKT的情谊!Faker提到学弟满脸笑意,Bang和Wolf想和学弟一起开黑
- 大话西游|大话西游2这些召唤兽的天生技能是开发组拿来凑数的吗?实际效果完全没用
- 电子竞技|【欣然轻资讯G】《地平线2西部禁域》新老怪兽即将登场 开发者日志
- 许秀|输了还“抱得美人归”?showmaker收女星邀请:回来一起吃个饭吧
- 桌游|48小时里,游戏开发能给这群大学生带来什么?