MySQL 中的日期时间类型
类型 | 占用空间 | 日期格式 | 最小值 | 最大值 | 零值表示 |
DATE | 4 bytes | YYYY-MM-DD | 1000-01-01 | 9999-12-31 | 0000-00-00 |
DATETIME | 8 bytes | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 | 0000-00-00 00:00:00 |
TIMESTAMP | 4 bytes | YYYY-MM-DD HH:MM:SS | 19700101080001 | 2038 年 | 00000000000000 |
TIME | 3 bytes | HH:MM:SS | -838:59:59 | 838:59:59 | 00:00:00 |
YEAR | 1 bytes | YYYY | 1901 | 2155 | 0000 |
注意事项
- 进行日期时间类型赋值时,任何标点符都可以用做日期部分或时间部分之间的间割符,例如 "98+12-31 11@30*45";
- 可以使用字符串或数字为日期时间类型赋值;
- 可以使用 now() 函数插入当前系统时间;
- TIMESTAMP 和时区相关,更能反映当前时间。当插入日期时,会先转换为本地时区后再存放;当查询日期时,会将日期转换为本地时区后再显示,所以不同时区的人看到的同一时间是不一样的;
- 一般建表时候,创建时间用 DATETIME ,更新时间用 TIMESTAMP。
- YEAR类型中,"YYYY" 形式的值,表示范围为 '1901' 到 '2155';"YY" 形式的值,'00~69' 表示 '2000~2069','70~99' 表示 '1970~1999';