mysql ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in 解决办法

2015-7-9 / 0 评论 代码人生 / Mrxn

本文共计 610 字,感谢您的耐心浏览与评论.

ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in 如图所示,我在使用MySQL的时候呢,遇到了这种问题,通过度娘找到了答案,在此小计.以便日后查看,大手子绕道,勿喷.

用到两个时间戳相减来做查询条件,由于其两个字段都是unsigned的,并两个的大小是不一样。所以直接相减查询的时候,

07-08-40-49.png

就出现ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的错误,因为结果可能会出现负数。。。。

07-08-33-11.png

解决办法呢,就是执行下面这句MySQL语句即可:

mysql>SET sql_mode='NO_UNSIGNED_SUBTRACTION';

07-08-34-06.png

从图中可以看到解决了.原理如下:

类型属性   在介绍数据类型前先来介绍两个属性UNSIGNED和ZEROFILL是否使用这两个属性对选择数据类型有着莫大的关系。  

1. UNSIGNED   UNSIGNED属性就是将数字类型无符号化与C、C++这些程序语言中的unsigned含义相同。例如INT的类型范围是-2 147 483 648  2 147 483 647 INT UNSIGNED的范围类型就是0  4 294 967 295。   看起来这是一个不错的属性选项特别是对于主键是自增长的类型因为一般来说用户都希望主键是非负数。

2.也可以使用 as signed 加在需要执行的MySQL语句解决.


标签: 编程 代码 MySQL

转载:转载请注明原文链接 - mysql ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in 解决办法


0条回应:“mysql ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in 解决办法”


发表评论

{view_code_no}