[每日更新-MySQL基础知识]6.常用数据类型-日期时间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[每日更新-MySQL基础知识]6.常用数据类型-日期时间相关的知识,希望对你有一定的参考价值。
1. 日期和时间
日期和时间类型在数据库中也非常重要,比如我们在数据库中新增了一个用户,我们就应该要存储用户加入的时间,方便以后的查询。
还有比如我们在记录日志的时候,谁操作了哪个地方,我们也需要有时间的参与,才能知道,谁在什么时候操作了什么。
1.1 日期时间
表示:datetime / date /year/time/timestamp
1.2 datetime / date / year /time
date 保存的是年月日。
datetime保存的是 年月日时分秒
year: 保存的是年份
time: 保存时分秒
可以看出 datetime更加占用空间,它占用8个字节。
1.3 timestamp时间错
占用4个字节。
范围在:1970-2038年。
1.4. 常用的保存时间的方式:
在真实的项目中,时间的保存我们通常使用一个整数类型来保存一个数字,用来表示时间戳,时间戳是从1970年1月1日0:0:0开始的以秒为单位的数字,
2. 创建数据表的示例:
创建一张用户表,需要有:用户名、昵称、手机号码、邮箱、年龄、注册时间等字段。
分析:
用户名、昵称、手机号码、邮箱都应该是字符串类型。不同的是,手机号码在中国都是11位,所以手机号码可以使用char类型。
年龄应该是一个数字类型,而且年龄应该都小于200.所以使用tinyint类型就可以满足。
注册时间用来表示一个时间,可以使用时间戳的方式。
create table if not exists `user` (
`id` int(11) unsigned auto_increment,
`username` varchar(15),
`nickname` varchar(10),
`phone` char(11),
`age` tinyint(3),
`create_time` int(11) unsigned,
primary key(`id`)
)engine=innodb default charset=utf8;
3. 练习
创建公司员工的考勤表,需要创建多张表。
1. 员工表
2. 员工打卡记录表
4. 附录(类型总结)
类型 | 范围 | 说明 | DEMO |
tinyint | -128 - 127 unsigned: 0-255 | 1个字节整数 | column_name tinyint(3) |
smallint | -32768 - 32767 unsigned: 0-65535 | 2个字节整数 | column_name smallint(5) |
mediumint | -8388608 - 8388607 unsigned: 0-16777215 | 3个字节整数 | colum_name mediumint(7) |
int | -2^31 ~ 2^31 -1 unsigned: 0~2^32 | 4个字节整数 | column_name int(10) |
bigint | -2^63 ~ 2^63 - 1 unsigned: 0 ~ 2^64 | 8个字节整数 | col_name bigint(16) |
float(M,D) | -3.4E+38 ~ 3.4E+38(约) | 4个字节小数 | |
double(M,D) | -1.79E+308 ~ 1.79E+308(约) | 8个字节小数 | |
decimal(M,D) | 精准的小数存储 | ||
char(N) | N = 1 ~ 255 | 定长 | |
varchar(N) | N = 1 ~ 65535 | 变长(需要单独拿出1-2个字节存储真实长度) | |
tinytext | 最大255个字符 | ||
text | 最大65535个字符 | ||
mediumtext | 最大16777215个字符 | ||
longtext | 最大4284967295和字符 | ||
date | 日期(yyyy-mm-dd) | ||
time | 时间(hh:mm:ss) | ||
datetime | 日期时间(yyyy-mm-dd hh:mm:ss) | ||
timestamp | yymmddhhmmss | ||
year | 年(yyyy) |
以上是关于[每日更新-MySQL基础知识]6.常用数据类型-日期时间的主要内容,如果未能解决你的问题,请参考以下文章