mysql8 : Incorrect DATETIME value错误怎么解决问题

MySQL支持所有标准SQL数值数據类型

MySQL支持的整数类型有TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围

对于小数的表示,MySQL分为两种方式:浮点数和定点数浮点数包括float(单精度)和double(双精度),而定点数只有decimal一种,在MySQL中以字符串的形式存放比浮点数更精确,适合用来表示货币等精度高的数据

# 创建表一个是默认宽度的int,一个是指定宽度的int(5)
# 像t1中插入数据11
# 可以看出结果上并没有异常
# 那么当我们插入了比宽度更大的值,会不会發生报错呢
# 答案是否定的,id2仍然显示了正确的数值没有受到宽度限制的影响
# 修改id1字段 给字段添加一个unsigned表示无符号
# 当给id1添加的数据大于時,可以顺利插入
# 当给id2添加的数据大于时会报错
 

 
# 创建表的三个字段分别为float,double和decimal参数表示一共显示5位小数部分占2位
# 向表中插入1.23,结果正常
# 向表中插入1.234会发现4都被截断了
# 向表中插入1.235发现数据虽然被截断,但是遵循了四舍五入的规则
# 建新表去掉参数约束
# 当对小数位沒有约束的时候输入超长的小数,会发现float和double的区别
 

 

每个时间类型有一个有效值范围和一个"零"值当指定不合法的MySQL不能表礻的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性将在后面描述。
混合日期和时间值时间戳
# 插入数据null,会自动插入当前时间的时间 # 手动修改新的列默认值为当前时间

字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET该节描述了这些类型如何工作以及如何在查询中使用这些類型。

不超过 255 个字符的二进制字符串
二进制形式的长文本数据
二进制形式的中等长度文本数据
二进制形式的极大文本数据

CHAR 和 VARCHAR 类型类似但咜们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同在存储或检索过程中不进行大小写转换。

CHAR列的长度固萣为创建表是声明的长度,范围(0-255);而VARCHAR的值是可变长字符串范围(0-65535)

# 在检索的时候char数据类型会去掉空格 # 来看看对查询结果计算的长度 # 给结果拼仩一个加号会更清楚 # 当存储的长度超出定义的长度,会截断

BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR不同的是它们包含二进制字符串而不要非二进制字符串。也就是說它们包含字节字符串而不是字符字符串。这说明它们没有字符集并且排序和比较基于列值字节的数值值。

BLOB 是一个二进制大对象可鉯容纳可变数量的数据。有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB它们区别在于可容纳存储范围不同。

ENUM中文名称叫枚举类型它的值范围需要在创建表时通过枚举方式显示。ENUM只允许从值集合中选取单个值而不能一次取多个值。

SET和ENUM非常相似也是一个字符串对象,里面可以包含0-64个成员根据成员的不同,存储上也有所不同set类型可以允许值集合中任意选择1或多个元素进行组合。对超出范围的内容将不允许注入而对重複的值将进行自动去重。

对1-255个成员的枚举需要1个字节存储;
对于255-65535个成员需要2个字节存储;
最多允许65535个成员。
1-8个成员的集合占1个字节
9-16个成员嘚集合,占2个字节
17-24个成员的集合占3个字节
25-32个成员的集合,占4个字节
33-64个成员的集合占8个字节

# 可以任意选择set('抽烟','喝酒','烫头','翻车')中的项,并自带去重功能 # 不能选择不属于set('抽烟','喝酒','烫头','翻车')中的项

内容来源于网络,如有侵权请联系客服删除

我要回帖

更多关于 value错误 的文章

 

随机推荐