前言
DATETIME 8字节
DATE 3字节
TIMESTAMP 4字节
YEAR 1字节
TIME 3字节
* DATETIME 和 DATE
(1)datetime占用了8个字节,是占用空间比较多的一种时间类型。它可以同时显示时间和日期,显示范围是1000-01-01 00:00:00到 9999-12-31 23:59:59.
(2)date占用了3个字节,只用来显示时间,显示范围是1000-01-01 到 9999-12-31
(3)注意:a.mysql对日期的格式要求不高。例如,2018-04-20 2018/04/20 20180420 18/04/20等都是允许的。b,如果年份只保存后两位,如 18/04/20,mysql会默认为2018/04/20而不是1918/04/20,mysql机制是取最近时间。
* TIMESTAMP
总的来说timestamp和datetime基本类似,它们的区别:
a.TIMESTAMP占用4个字节 b.显示的时间范围是 1970-01-01 00:00:00 到 当前时间 c.在更新表时,可以设置TIMESTAMP的列自动更新为当前时间
* YEAR 和 TIME
YEAR占用1个字节,并且定义时可以指定显示的宽度YEAR(4) 和 YEAR(2)
a.对于YEAR(4) 显示的范围为1901-2155 b.对于YEAR(2) 显示的范围为00-69 2000-2069
TIME占用3个字节 显示的范围是 -838:59:59 到 838:59:59。之所以可以这样表示,是因为time不仅可以表示一天的时间,还可以表示时间间隔。这就解释了为什么存在负值和小时大于23的原因。