参考自 http://blog.csdn.net/qq_35440678/article/details/53164675
http://database.51cto.com/art/200905/124240.htm
1、相同点
两者都是时间类型字段。timestamp
列的显示格式与datetime
列相同。换句话说,显示宽度固定在19字符,并且格式为YYYY-MM-DD HH:MM:SS。
2、不同点
- 最主要的区别-受时区影响不同。
timestamp
会跟随设置的时区变化而变化,而datetime
保存的是绝对值不会变化。因此,如果应用场景有跨时区要求的要特别注意这点。 - 占用存储空间不同。
timestamp
储存占用4个字节,datetime
储存占用8个字。 - 可表示的时间范围不同。
timestamp
可表示范围:1970-01-01 00:00:00
~2038-01-09 03:14:07
,datetime
支持的范围更宽1000-01-01 00:00:00
~9999-12-31 23:59:59
。 - 索引速度不同。
timestamp
更轻量,索引相对datetime
更快。
3、timestamp默认值
- TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- 在创建新记录和修改现有记录的时候都对这个数据列刷新
- TIMESTAMP DEFAULT CURRENT_TIMESTAMP
- 在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它
- TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- 在创建新记录的时候把这个字段设置为0,以后修改时刷新它
- TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT_TIMESTAMP
- 在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它