[每日更新-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.常用数据类型-日期时间的主要内容,如果未能解决你的问题,请参考以下文章

MySQL学习基础篇

零基础带你学习MySQL—MySQL常用的数据类型(列类型)

大数据开发阶段一Javase 基础知识点总结持续更新

Mysql 基础及常用函数

Mysql 基础及常用函数

MySQL基础(常用的语句)