035 - datetime和timedstamp

该DATETIME类型用于包含日期和时间部分的值。MySQL检索并DATETIME以格式显示 值 。支持的范围是 到。 'YYYY-MM-DD hh:mm:ss''1000-01-01 00:00:00''9999-12-31 23:59:59'

该TIMESTAMP数据类型被用于同时包含日期和时间部分的值。 UTCTIMESTAMP的范围是UTC。 '1970-01-01 00:00:01''2038-01-19 03:14:07'

-- 创建表,a是datetime,b是timestamp:
create table test_date_stamp (a datetime, b timestamp);

-- 查询表结构:
desc test_date_stamp;

035 - datetime和timedstamp_第1张图片

 备注:timestamp 不能为空,默认值是当前时间;如果数据a发生变化,数据b更新为当前时间;

-- 插入a字段名称数据:
insert into test_date_stamp (a) values ('2023-8-29 09:50:01');

-- 查询数据:
select * from test_date_stamp;

-- 查询当前时间,NOW()函数,获取当前时间:
select NOW();

035 - datetime和timedstamp_第2张图片

 备注:可以看到 b字段有默认事件为当前系统时间;

-- 更新a字段名称数据:
update test_date_stamp set a='2023-8-29 10:50:01';

-- 查询表数据:
select * from test_date_stamp;

-- 查询当前时间:
select now();

035 - datetime和timedstamp_第3张图片

  备注:以上可以验证,表数据a发生变化,b数据更新为当前时间

练习:创建表,a、b字段为整数,c字段为timestamp,c时间随着a、b数据发生变化而变化更新为数据变动时的当前时间;

-- 创建表:
create table test_timestamp01 (a int, b int, c timestamp);

-- 查询表结构:
desc test_timestamp;

-- 插入a、b字段数据:
insert into test_timestamp (a, b) values (1, 2);

-- 查询所有表数据:
select * from test_timeatsmp01;

-- 分别更新a、b数据,查看数据,观察c时间变化:
update test_timestamp01 set a = 10;
update test_timestamp01 set b = 20;
select * from test_timeatsmp01;

 035 - datetime和timedstamp_第4张图片

 

你可能感兴趣的:(数据库,数据库)