时间日期类型
date
日期类型:系统使用三个字节来存储数据,对应的格式为:YYYY-mm-dd
,能表示的范围是从1000-01-01
到9999-12-12
,初始值为0000-00-00
。
time
时间类型:能够表示某个指定的时间,但是系统同样提供三个字节来存储,对应的格式为:HH:ii:ss
,但是MySQL
中的time类型能够表示时间范围要大的多,能表示从-838:59:59 ~ 838:59:59
,在MySQL
中的具体用处是用来描述时间段的。
datetime
将date和time合并起来表示的时间,格式为:YYYY-mm-dd HH:ii:ss
,使用八个字节来存储数据。表示的范围是1000-01-01 00:00:00
到9999-12-12 23:59:59
,其初始值为0000-00-00 00:00:00
timestamp
时间戳类型:MySQL
中的时间戳类型只是表示从格林威治时间开始的时间,但其格式依然是YYYY-mm-dd HH:ii:ss
year
年:占用一个字节来保存,能表示1900年 ~ 2155年,但是year
有两种数据插入方式:0~99和四位数的具体年。
-
创建时间表
create table my_date( d1 date, d2 time, d3 datetime, d4 timestamp, d5 year )charset utf8;
-
插入数据:正常数据
insert into my_date values('1900-01-01','12:12:12','1900-01-01 12:12:12', '1999-01-01 12:12:12',69);
-
year
的特殊性:可以采用两位数的数据插入,也可以采用四位数的年份插入insert into my_date values('1900-01-01','12:12:12', '1900-01-01 12:12:12', '1999-01-01 12:12:12',2020);
-
year
进行两位数插入的时候,又一个区间划分,临界点为69和70:当输入69以下,那么系统时间为20+数字
,如果是70以上那么系统时间为19+数字
insert into my_date values('1900-01-01','12:12:12', '1900-01-01 12:12:12', '1999-01-01 12:12:12',70);
-
timestamp
当对应的数据被修改的时候,会自动更新(这个被修改的数据不是自己) -
time
类型特殊:本质是用来表示时间区间 -
time
在进行时间类型录入的时候,还可以使用一个简单的日期代替时间,在时间格式之前加一个空格,然后指定一个数字(可以是负数):系统会自动将该数字转换成天数*24小时再加上后面的时间。
通常程序中的时间,用一个整型类型的字段去保存时间戳