MySQL日期类型、日期格式、存储空间、日期范围比较。日期类型 存储空间 日期格式 日期范围------------ --------- --------------------- -----------------------------------------datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31year 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只会更新第一个。
转载于:https://www.cnblogs.com/robertsun/p/5369003.html
