mysql定点型_MySQL基础学习之大战时间及定点类型

3a6ce95c56272d4289c0e272a967c34b.png

点击这里关注"程序员Bob"

a6ce4de609b0e64391b1c4748b8a8cb5.png

5c493cd8258c06833c259e64a2c466ce.png

A good book is an event in my life.读一本好书是我的人生大事。

ed65d7c450f43a4b0b18e12089e8769d.png

关于SQL的列类型学习小编上次只讲到了整型以及浮点数,也只占小部分,后面还会有时间日期,定点型(今天要提到的),文本字符串,枚举和集合啥的,当然主要的也是这几种。这还算是比较基础的,后面难度是会增加的哦。

关于学SQL语言,小编认为是进大厂所必须掌握的,当然是指相应的开发岗位,毕竟大型APP都会使用到某种相应的数据库来存储数据。

列类型:定点型

定点型:

绝对保证整数部分不会被四舍五入(即不会丢失精度),小数部分可能会(理论上是不会的)。

创建定点数表(同时以浮点数表做对比),当然,每次进MySQL之后需要进入到相应的database中才能执行下列操作哦(进database语句:use (你的数据库名字);)

创建定点类型表:

create table my_decimal(fi float (10,2),di decimal (10,2))charset utf8;

分别执行如下:

dc28ab3b64bd00fea4ae8a1ecaa75761.png

插入数据:

定点数的整数部分一定不能超出长度,小数部分的长度可以随意超出。

To:整数部分超出长度后进位也是不可以的哦,小数部分倒是可以随意超出,毕竟系统会自动进行四舍五入。浮点数如果进位导致长度溢出没有问题,但是定点数不行。

下面语句在执行时若有报错,可使用

查看报错的语句:show warnings;

插入数据相应语句:

-- 插入数据insert into my_decimal values(12345678.90,12345678.90); -- 有效数据insert into my_decimal values(1234.123456,1234.1234567);  -- 小数部分超出insert into my_decimal values (12345678.99,12345678.99);  -- 不会报错insert into my_decimal values (12345678.99,12345678.999);  -- 进位超出

查看报错:

f1fdb3516b0d8323615314faf303f5ac.png

分别执行效果如下:

38fcb08139636647dd3d6dcf70954a09.png

列类型:时间日期型

Datetime(时间日期):格式是YYYY-mm-dd HH:ii:ss(表示的范围是从1000年到9999年,存在零值全为0,即为0000-00-00 00:00:00)。

Date(日期):是datetime中的date部分。

Time(时间段):指定的某个区间之间,比如从某个时间到某个时间。

Timestamp(时间戳):但也不完全是时间戳,只是从1970年开始的YYYY-mm-dd HH:ii:ss 格式与Datetime完全一致。

相关时间类型:

916c3e0ae4132e171eab65a09199020b.png

创建时间日期表语句:

-- 创建时间日期表create table my_date(d1 datetime,d2 date,d3 time,d4 timestamp,d5 year)charset utf8;

创建相关表的执行窗口就不用放了哈~

插入数据:时间time可以是负数,而且可以是很大的负数,year可以是使用两位数插入,也可以使用四位数插入。

插入数据

相应

语句:

-- 插入数据insert into my_date values ('2020-10-27 12:00:00','2020-10-28','10:00:00','2020-10-28 10:00:00',2020);-- 时间使用负数insert into my_date values ('2020-10-27 12:00:00','2020-10-28','-10:00:00','2020-10-28 10:00:00',2020);insert into my_date values ('2020-10-27 12:00:00','2020-10-28','-210:00:00','2020-10-28 10:00:00',2020);insert into my_date values ('2020-10-27 12:00:00','2020-10-28','-2 10:00:00','2020-10-28 10:00:00',2020);-- -2过去两天 48小时-- year 可以使用两位或四位insert into my_date values ('2020-10-27 12:00:00','2020-10-28','-10:00:00','2020-10-28 10:00:00',69);insert into my_date values ('2020-10-27 12:00:00','2020-10-28','-10:00:00','2020-10-28 10:00:00',70);

当上面语句都被执行后的效果(不按顺序):

1a422554220d21ca6c5f3be9b5054b4c.png

Timestamp字段:只要当前所在的记录被更新,该字段一定会自动更新成当前时间。

语句:

-- Timestamp:修改记录update my_date set d1 = '2020-10-27 11:11:11' where d5 = 2069;

执行如下:

d8079c9458f18571e1e6a50cb48b8b90.png

85d8db58ad4bf4d8b743c07d79972905.png

往期推荐:

为你,千千万万遍.

关注程序员Bob公众号,与你一起终生学习

967be0b0c57ee42a37715afe61c62d3a.png

一键三连,就差你了

6a78437bdc5cbb193df9990d311b0ba7.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值