5个时间类型占用字节和范围如下:
datetime和timestamp都能储存精确到秒的时间,timestamp的占用字节数只有4,但是日期范围较短。
在MySQL5.6版本以前,只有timetasmp类型才能自动插入和更新当前日期时间。且一个表里面,只能有一个字段自动插入和更新当前日期时间(同时设置两个timestamp类型的列会报错),所以有时候从高版本(5.6及以上)导入数据到低版本就会报错。
timestamp其实是保存的世界标准时间,即时间戳。datetime就是按输入原样保存的。
从MySQL5.6开始,有以下一些变化:
1.允许一个表中,多个列的类型为timestamp,所以允许多个字段自动插入和更新当前时间。
2.datetime也支持类似timestamp的自动插入和更新当前时间。DEFAULT CURRENT_TIMESTAMP自动插入当前时间;DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP自动更新当前时间。
3.year(2)会被自动转为year(4),如果插入数据19,则自动转为2019。
一般会选择datetime类型使用。