MySQL中的时间问题,还需要进一步研究

发布时间:2022-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了MySQL中的时间问题,还需要进一步研究脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

使用Java开发MySQL数据库应用时,日期和时间类型经常使用date和datetime,最近从PHP的应用中导出一份数据库脚本发现其中的日期时间使用的是int类型,当用Java语言访问此类时间时不能正确转换成java.util.Date。使用Date类型保存数据到MySQL数据库中时出现了这样的错误:Data truncation: Out of range value for column 'publishTime',这表明数据库中的int数据长度不足,不能保存Java日期类型。查询了一些网上资料发现了如下介绍:@H_304_1@

MySQL通常存储时间用datetime类型,现在很多系统也用int存储时间,它们有什么区别?使用int这样对于日期计算时比较好。

int(1)4个字节存储,INT的长度是4个字节,存储空间上比datatime少,int索引存储空间也相对较小,排序和查询效率相对较高一点点(2)可读性极差,无法直观的看到数据,可能让你很恼火TIMESTamP(1)4个字节储存(2)值以UTC格式保存(3)时区转化 ,存储时对当前的时区进行转换,检索时再转换回当前的时区。(4)TIMESTAMP值不能早于1970或晚于2037datetime(1)8个字节储存(2)与时区无关(3)以'yyYY-MM-DD HH:MM:SS'格式检索和显示DATETIME值。支持的范围为'1000-01-01 00:00:00'到'9999-12-31 23:59:59'

知道了上述内容之后如何解决Java日期类型与MySQL数据库中日期的转换,主要采取的方式有两种:

一是Java语言中使用java.util.Date类型,数据库中的日期类型使用datetime,这样两者都可以正常转换

二是数据库中日期还是使用数值型,方便比较和计算,但查看不方便,但是int的类型是4个字节,而Java中的Date保存到数据库是8个字节,还是存在数据长度不足的问题,于是考虑将int类型改为Bigint类型,这样Java中的日期就可以保存到数据中了

脚本宝典总结

以上是脚本宝典为你收集整理的MySQL中的时间问题,还需要进一步研究全部内容,希望文章能够帮你解决MySQL中的时间问题,还需要进一步研究所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。