1、Year
见名之意,year用于存储年,存储时只需要一个字节,插入数据时可以使用各种格式指定YEAR值(非常节约内存,所以当你只需要年的时候,用此字段合适)。
2、Time
time用于存储时间信息,存储时需要三个字节。
虽然,小时的范围是0~23,但是为了表示某种特殊需要的时间间隔,将Time类型的范围扩大了。而且还支持了负值。
(推荐甚至强制要求必须)字符串格式:‘HH:MM:SS’。
例如,输入‘123456’,Time类型会转换成12:34:56;
3、Date
date用于存储日期,没有时间部分,存储时需要三个字节。
支持的常见插入格式为:
(推荐甚至强制要求必须) ‘YYYY-MM-DD’或‘YYYYMMDD’格式的字符串表示,这种方式可以表达的范围是‘1000-01-01’~‘9999-12-31’。
4、Datetime
datetime类型使用8个字节来表示日期和时间。
支持的常见插入格式为:
(推荐甚至强制要求必须)‘YYYY-MM-DD HH:MM:SS’或‘YYYYMMDDHHMMSS’格式的字符串表示。这种方式可以表达的范围是‘1000-01-01 00:00:00’~~‘9999-12-31 23:59:59’。
5、timestamp
timestamp类型使用4个字节来表示日期和时间。
(推荐甚至强制要求必须)‘YYYY-MM-DD HH:MM:SS’或‘YYYYMMDDHHMMSS’格式的字符串表示。它的取值范围为“1970-01-01 00:00:01” UTC ~ “2038-01-19 03:14:07” (和时区有关)
6、Datetime和timestamp二者主要区别
1.取值范围:
- timestamp存储需要四个字节,它的取值范围为“1970-01-01 00:00:01” UTC ~ “2038-01-19 03:14:07” (和时区有关)
- datetime存储需要八个字节,它的取值范围为“1000-01-01 00:00:00” ~ “9999-12-31 23:59:59”(和时区无关,怎么存入怎么返回,对程序员友好)
2、timestamp类型还有一个很大的特殊点,就是时间是根据时区来显示的。
例如,在东八区插入的timestamp类型为2009-09-30 14:21:25,在东七区显示时,时间部门就变成了13:21:25,在东九区显示时,时间部门就变成了15:21:25。
3、总结:timestamp类型的范围太小,其最大时间为2038-01-19 11:14:07。
如果插入时间的比这个大,将会数据库插入0000-00-00 00:00:00。所以,还是选择dateTime类型比较安全。