知识补充
一个字符占三个字节(字节构成了字符)
char(m) 定长字符串:即使内容长度小于m,也会占用m的长度。
varchar(m) 变长字符串,m代表字符串的长度,最多可容纳65535个字节。即使内容小于m,会按照真实长度进行存储
跟时间有关的
datetime 输入输出时间原样,不做任何改变
timestamp 把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储,查询时,又将其转化为客户端当时的时区进行返回。(跟mysql时区设置有关)
代码练习
需求:创建一张表 L5 有三列id dt tt。其中id为主键自增且不能为空。
代码如下:
create table L5(
id int not null primary key auto_increment,
dt datetime,
tt timestamp
)default charset=utf8;
表创建成后,往其中插入值
执行代码
insert into L5(dt,tt) values("2025-11-11 11:11:44","2025-11-11 11:11:44");
看代码执行截图成功插入数据
(注意,所有代码都必须是在英文状态下输入)
执行默认查询
select * from L5
发现两种储存方式显示出来的值都一样。
但是 timestamp 跟mysql时区设置有关
首先查询以下mysql当中的时区
show variables like '%time_zone%';
改变一下time_zone的时区,
执行代码
set time_zone='+0:00'; --改成伦敦时区
再查询一下mysql当中的时区,发现时区产生变化
再次查询
时间相关的还有
date
YYYY-MM-DD(1000-01-01/9999-12-31) 年/月/日
time
HH-MM-SS(’-838:59:59’/‘838:59:59’) 时/分/秒