datetime和timestamp是MySQL中常用的日期和时间数据类型, 它们的区别如下:
1)占用存储空间
类型 | 占用字节 | 表示形式 |
---|---|---|
datetime | 8 字节 | yyyy-mm-dd hh:mm:ss |
timestamp | 4 字节 | yyyy-mm-dd hh:mm:ss |
2)表示范围
类型 | 表示范围 |
---|---|
datetime | '1000-01-01 00:00:00.000000' to '9999-12-31 23:59:59.999999' |
timestamp | '1970-01-01 00:00:01.000000' to '2038-01-19 03:14:07.999999' |
3)时区
timestamp将客户端插入的时间从当前时区转换为utc(世界标准时间)进行存储。查询时,又将其转换为客户端当前时区进行返回。
datetime不做任何改变,基本上是原样输入和输出。
4)其它区别
设置字段为null时,timestamp会自动存储当前时间,datetime 存储的仍然是null。