MySQL日期类型、日期格式、存储空间、日期范围比较。
日期类型 存储空间 日期格式 日期范围
------------ --------- --------------------- -----------------------------------------
datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038
date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31
year 1 bytes YYYY 1901 ~ 2155
在 MySQL 中创建表时,这两个日期时间类型各有优点:datetime 的日期范围比较大;timestamp 所占存储空间比较小,只是 datetime 的一半。
timestamp默认值有三种:
■NULL
■NOT NULL DEFAULT CURRENT_TIMESTAMP
■NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
其中,
■CURRENT_TIMESTAMP - 当更新此条记录时,时间戳不会改变
■CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP - 当更新此条记录时,时间戳将会改变,变为最新时间
设置CURRENT_TIMESTAMP默认值后,插入记录还是更新记录都不需要维护该字段,该字段完全由MySQL维护,就像AutoIncrement字段一样,但如果使用上文设置的datetime字段,则需要手动构造时间更新,比如类似now()等。
对CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,有个特殊情况,假如你更新的字段值(UPDATE)没有变化时,MySQL将会忽略更新操作,所以,时间戳也不会改变。另外,如果有多个CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP列,那么MySQL只会更新第一个。
相关文章
- 09-10mysql中时间类型datetime,timestamp与int的区别
- 09-10MYSQL时间类别总结: TIMESTAMP、DATETIME、DATE、TIME、YEAR
- 09-10mysql中,时间类型datetime和timestamp的区别
- 09-10MySQL的日期类型:DATE、DATETIME、TIMESTAMP、TIME、YEAR
- 09-10MySQL中的datetime与timestamp比较
- 09-10MySql中的时间类型datetime,timestamp,date,year比较
- 09-10MySQL时间类型datetime、bigint及timestamp的查询效率
- 09-10MySQL中的datetime与timestamp比较
- 09-10mysql数据库时间类型datetime、bigint、timestamp的查询效率比较
- 09-10DataWorks百问百答31:如何在数据集成mysql-to-odps中将timestamp时间戳类型数据同步为odps的datetime类型?