本文介绍php出现Warning: A non-numeric value encountered问题,用实例分析出现这种错误的原因,并提供避免及解决问题的方法。 <?phperror_reporting (E_ALL);

ini_set('display_errors', 'on');$a = '123a';$b = 'b456...

MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。

BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。

作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型 字节 最小值 最大值

(带符号的/无符号的) (带符号的/无符号的)

TINYINT 1 -128 127

0 255

SMALLINT 2 -32768 32767

0 65535

MEDIUMINT 3 -8388608 8388607

0 16777215

INT 4 -2147483648 2147483647

0 4294967295

BIGINT 8 -9223372036854775808 9223372036854775807

0 18446744073709551615

MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度。

显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。

当结合可选扩展属性ZEROFILL使用时, 默认补充的空格用零代替。例如,对于声明为INT(5) ZEROFILL的列,值4检索为00004。请注意如果在整数列保存超过显示宽度的一个值,当MySQL为复杂联接生成临时表时会遇到问题,因为在这些情况下MySQL相信数据适合原列宽度。

所有整数类型可以有一个可选(非标准)属性UNSIGNED。当你想要在列内只允许非负数和该列需要较大的上限数值范围时可以使用无符号值。

浮点和定点类型也可以为UNSIGNED。同数类型,该属性防止负值保存到列中。然而,与整数类型不同的是,列值的上范围保持不变。

如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性。

对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用8个字节。

FLOAT类型用于表示近似数值数据类型。SQL标准允许在关键字FLOAT后面的括号内选择用位指定精度(但不能为指数范围)。MySQL还支持可选的只用于确定存储大小的精度规定。0到23的精度对应FLOAT列的4字节单精度。24到53的精度对应DOUBLE列的8字节双精度。

MySQL允许使用非标准语法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。这里,“(M,D)”表示该值一共显示M位整数,其中D位位于小数点后面。例如,定义为FLOAT(7,4)的一个列可以显示为-999.9999。MySQL保存值时进行四舍五入,因此如果在FLOAT(7,4)列内插入999.00009,近似结果是999.0001。

MySQL将DOUBLE视为DOUBLE PRECISION(非标准扩展)的同义词。MySQL还将REAL视为DOUBLE PRECISION(非标准扩展)的同义词,除非SQL服务器模式包括REAL_AS_FLOAT选项。

为了保证最大可能的可移植性,需要使用近似数值数据值存储的代码应使用FLOAT或DOUBLE PRECISION,不规定精度或位数。

DECIMAL和NUMERIC类型在MySQL中视为相同的类型。它们用于保存必须为确切精度的值,例如货币数据。当声明该类型的列时,可以(并且通常要)指定精度和标度;例如:salary DECIMAL(5,2)

在该例子中,5是精度,2是标度。精度表示保存值的主要位数,标度表示小数点后面可以保存的位数。

在MySQL 5.1中以二进制格式保存DECIMAL和NUMERIC值。

标准SQL要求salary列能够用5位整数位和两位小数保存任何值。因此,在这种情况下可以保存在salary列的值的范围是从-999.99到999.99。

在标准SQL中,语法DECIMAL(M)等价于DECIMAL(M,0)。同样,语法DECIMAL等价于DECIMAL(M,0),可以通过计算确定M的值。在MySQL 5.1中支持DECIMAL和NUMERIC数据类型的变量形式。M默认值是10。

DECIMAL或NUMERIC的最大位数是65,但具体的DECIMAL或NUMERIC列的实际范围受具体列的精度或标度约束。如果此类列分配的值小数点后面的位数超过指定的标度允许的范围,值被转换为该标度。(具体操作与操作系统有关,但一般结果均被截取到允许的位数)。

BIT数据类型可用来保存位字段值。BIT(M)类型允许存储M位值。M范围为1到64。

要指定位值,可以使用b'value'符。value是一个用0和1编写的二进制值。例如,b'111'和b'100000000'分别表示7和128。

如果为BIT(M)列分配的值的长度小于M位,在值的左边用0填充。例如,为BIT(6)列分配一个值b'101',其效果与分配b'000101'相同。

当要在一个数值列内保存一个超出该列允许范围的值时,MySQL的操作取决于此时有效的SQL模式。如果模式未设置,MySQL将值裁剪到范围的相应端点,并保存裁减好的值。但是,如果模式设置为traditional(“严格模式”),超出范围的值将被拒绝并提示错误,并且根据SQL标准插入会失败。

如果INT列是UNSIGNED,列范围的大小相同,但其端点会变为到0和4294967295。如果你试图保存-9999999999和9999999999,以非严格模式保存到列中的值是0和4294967296。

如果在浮点或定点列中分配的值超过指定(或默认)精度和标度规定的范围,MySQL以非严格模式保存表示范围相应端点的值。

当MySQL没有工作在严格模式时,对于ALTER TABLE、LOAD DATA INFILE、UPDATE和多行INSERT语句,由于裁剪发生的转换将报告为警告。当MySQL工作在严格模式时,这些语句将失败,并且部分或全部值不会插入或更改,取决于是否表为事务表和其它因素。

本文介绍php出现Warning: A non-numeric value encountered问题,用实例分析出现这种错误的原因,并提供避免及解决问题的方法。 <?phperror_reporting (E_ALL);

ini_set('display_errors',

SQL2005利用ROW_NUMER实现分页的两种常用方式

代码如下:declare @PageNumber int declare @PageSize int set @PageNumber=2 set @PageSize=20 --利用between select * f

... 2px;

FONT-FAMILY: Arial, Helvetica, sans-serif; WHITE-SPACE: nowrap

}

TD.numeric {

TEXT-ALIGN: right

}

TH {

BACKGROUND-COLOR: #c0c0c0

}

TH.main

declare @tmpt table(a int,b numeric(20,3),c numeric(20,3)) insert into @tmpt EXECUTE cbdbfxt 2005,5,'670,' select * from @tmpt drop table #tmpt create

is_numeric();

decimal(numeric ) 同义,用于精确存储数 float 和 real 不能精确存储数 decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。 decimal 数据类型存储了一个准确(精确)的数字表达法;不存储的近。 定义 decimal ...

...if (!$dateTimeString) { $dateTimeString = time(); } $numeric = ''; $add_space = false; for($i=0;$i

...是ture,不适用范围:不适用于检测可为0的参数。 is_numeric();——只适用于检测数字,但假如参数名不存在,会出错,因此不适合于第一层检测。 综合示例: 复制代码 代码如下:

...持许多种不同的数值型数据。你可以存储整数 INT 、小数 NUMERIC、和钱数 MONEY。INT VS SMALLINT VS TINYINT 他们的区别只是字符长度: INT型数据的表数范围是从-2,147,483,647到2,147,483,647的整数SMALLINT 型数据可以存储

...。所以在进行json_encode() 时,加了参数 JSON_NUMERIC_CHECK(参考)

但是问题来了:加了这个参数后,它会把 decimal 类型的 价格 price 比如:20.00 ,后面的小数点去掉了,还有一个就是,比如说它也会把比如身...

mysql有numeric类型吗_mysql数值类型 - numeric相关推荐

  1. 如何将货币类字符串类型变更为数值类型

    文件导入后列属性为 object,想要类型修改为数值类型便于数据分析,使用以下代码不成功: donations = donations.astype({'DemMedHomeValue':'float ...

  2. mysql @符号_MySQL 数值类型

    点击关注,我们共同每天进步一点点! 1 整数类型 整数类型包含TINYINT.SMALLINT.MEDIUMINT.INT BIGINT等 1 存取范围 m为其显示宽度,在为字段设置 zerofill ...

  3. MySQL数值型超出范围_MySQL 数值类型溢出处理

    来,考考大家一个问题,在 MySQL 中当某一列设置为 int(0) 时会发生什么 ? 为了演示这个问题,我们先要创建一个表 DROP TABLE IF EXISTS `na`; CREATE TAB ...

  4. mysql 字段类型 负数_MySQL字段类型详解

    MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...

  5. mysql 将字符串转换数字类型的_MySQL 字符串类型用数字可以查出来 MySQL字符串类型会转换成数字 MySQL隐式类型转换...

    一.发现问题 1.在一次MySQL查询中,某字段为 varchar 字符串类型,传入参数值为 int 数字类型,发现查询的结果和预期的不一致. 如: 某两列 name='11' , name = '1 ...

  6. python序列类型有_Python数值类型和序列类型

    int.float.bool这三个数值类型和常用序列类型的定义和使用 数值类型的基本计算 序列类型的索引取值.切片.成员运算等序列类型的通用操作 complex(复数).decimal(定点数).ma ...

  7. 【Windows 逆向】Cheat Engine 数据挖掘搜索方法和技巧 ( 数值类型选择 | 字符串数值类型选择 | 全部数值类型模糊选择 )

    文章目录 一.数值类型选择 二.字符串数值类型选择 三.全部数值类型模糊选择 一.数值类型选择 在 CE 中可以搜索多种数据类型 , 如下图 , 二进制 , 字节 , 2 字节 , 4 字节 , 8 ...

  8. python的数值类型_Python的数值类型

    标签:如何 问题: 1. Python数值有哪些? 2. 各类型的精度是多少? 3. 类型的转换是如何实现的? 5. 如何使用这些数据类型?需要注意什么? 6. 什么是不可变类型? 数值类型: 整型: ...

  9. python数值类型教程_Python数值类型 int、float、complex 详解

    Python数值类型 int.float.complex 详解 Python数值类型:int.float.complex 在Python程序中,int.float和complex是三种十分重要的数值类 ...

最新文章

  1. I.MX6 修改调试串口号(ttymx0 - ttymxc2)
  2. 利用redis写webshell
  3. 【数据结构与算法】之深入解析“整数转罗马数字”的求解思路与算法示例
  4. IOS 通讯录 右侧的字母栏
  5. rto净化效率计算公式_全面剖析 石油化工行业RTO蓄热式焚烧炉的优势要素
  6. 前端学习(2257)如何做分支管理
  7. spring笔记4-事务管理
  8. android 查找所有dialog_android 布局文件layout分组的简单使用
  9. MFC、OpenCV初探 —— PictureControl中图片的缩放
  10. qr分解求线性方程组_矩阵分解
  11. 社区发现算法之——Louvain
  12. 理正深基坑弹性计算方法_理正深基坑软件应用全参数说明书
  13. 3dmax导出unity3d模型设置
  14. 笔记本电脑合上盖子不休眠设置方法
  15. 虚拟主机服务器错误500解决方法
  16. qt安装报错:下载“http://download.qt.io/online/xxxxx/_meta.7z“server replied: Bad Gateway出现网络错误
  17. 歌剧《猫》的经典唱段《memory》中英文对照
  18. 抢滩直播基地:有人黯然退场,有人闪亮进场,还有人只当跳板
  19. stm32F407 ADC
  20. mysql数据库用sql语句在指定的一个字段后面添加一个字段

热门文章

  1. IBM服务器修改时间为24小时制,联想携IBM为用户提供24小时全天候技术支持
  2. android系统方法裁剪图片 华为手机显示为圆
  3. xshell和xftp免费使用方法
  4. 神经网络预测结果分析,神经网络预测适用范围
  5. WampServer常见问题集锦
  6. webstorm 打开项目java.io.IOEXception:couldn't create PTY
  7. 屏保:毛雷尔玫瑰屏保
  8. IT软件创业之 -- 电脑设备买过来都是钱,卖出去都是废铁
  9. day4. jetson nx 确认 SPI 时钟
  10. php从一个字符串中过滤掉英文,php过滤英文字符