前言:
如今兄弟们对“mysqldate与datetime”都比较注重,小伙伴们都需要分析一些“mysqldate与datetime”的相关知识。那么小编也在网上搜集了一些有关“mysqldate与datetime””的相关文章,希望咱们能喜欢,同学们快快来了解一下吧!今天看到一个问题,关于mysql数据库字段类型, timestamp 和 datetime ,
下面展示下错误和表的结构,如下图:
后来,查了一些网上信息,timestamp的范围是从1970-01-01 到2038-01-19,这也就是为什么上面的生产问题会报错的原因 ,而datetime的时间是没有限制的。
还有其他不同点,总结如下:
.1.timestamp和datetime占用大小不一样。 在v5.6.4之前的版本。datetime占8个字节,timestamp占4个字节。 在这个版本之后datetime和timestamp占用的字节数都有一定程度的减少,并且根据是否有秒的小数的情况,相对应生成浮动大小。
2.timestamp会根据时区的情况进行时间转换,假设当前存储的时区和检索的时区有差异,那么timestamp会根据检索的时区进行转换。 而datetime就不会,datetime是属于你给他什么他就拿到什么,没有timestamp得这个功能。
3.二者存储null时有不同的效果,如果你的时间是datetime那么datetime就会把null存入进去,如果你用的是timestamp,那么timestamp会根据现有的时间帮你插入。对于二者的区别就介绍的差不多了,在我们开发的实际情况中,要根据实际的业务情况去选择时使用timestamp还是datetime,如果没有什么特殊的需求,那就用timedate即可
建议使用timestamp的情况
1.当我们存储时间范围是比较小的时候。
2.当时间精度要求比较高的时候,timestamp可以达到的精度是纳秒级别。
3.需要使用默认值为当前时间的。
建议使用datetime 的情况
1.存储时间范围较大的时间。
2.需要存储时间与时区无关的情况。
转载文章:
标签: #mysqldate与datetime