日期算是我们在日常开发中经常用到的数据类型,一般来说一张表都有createTime和updateTime字段,MySQL中针对日期也提供了很多种不同的数据类型,如:
datetimetimestampint等等。甚至也有人直接将日期存为字符串的。
那么到底该用哪种类型来保存日期呢?
1.字符串在这些类型中,首先应该排除掉的就是字符串了,很多新手小伙伴爱用字符串存储日期,但实际上这并不是一个很好的方案。
使用字符串存储日期,第一个显而易见的问题就是无法使用MySQL中提供的日期函数,这会为很多查询带来不便。
?例如用户表中有一个字段birthday,表示用户的生日,现在想要查询出生的所有用户,如果birthday是日期类型,就可以使用YEAR函数,但是如果birthday是字符串类型,这个问题就不太好处理了。
使用字符串存储日期的第二个问题就是占用空间较大,例如存储如下时间:
-01-:00:00
如果使用字符串,需要19个字节。如果使用datetime需要8个字节。如果使用timestamp需要4个字节。所以首先排除掉字符串。
2.DATETIMEVSTIMESTAMEP2.1占用空间DATETIME在数据库中存储的形式为:YYYY-MM-DDhh:mm:ss,至于占用的字节数,则看情况,我们来看一段来自MySQL