摘要:对这两种mysql的字段类型做一下比较,分析一下使用的场景
1、DATETIME的默认值为null;
TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP)
如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。
2、DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。
3、两者的存储方式不一样 ,对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。
4、两者所能存储的时间范围不一样
timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’;
datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。
在mysql 5.6之前的版本,CURRENT_TIMESTAMP只能用于timestamp类型,