Mysql ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的解决方法
2015-11-13 15:56
696 查看
今天在做一个功能的时候,用到两个时间戳相减来做查询条件,由于其两个字段都是unsigned的,并两个的大小是不一样。所以直接相减查询的时候,
就出现ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的错误,因为结果可能会出现负数。。。。
过后查资料,发现可以通过下面的方法来解决:
[sql] view
plaincopy
mysql> select lastvisit, lastactivity from pre_common_member_status limit 1;
+------------+--------------+
| lastvisit | lastactivity |
+------------+--------------+
| 1199200260 | 1198336989 |
+------------+--------------+
1 row in set (0.01 sec)
mysql> select lastvisit-lastactivity from pre_common_member_status limit 1;
+------------------------+
| lastvisit-lastactivity |
+------------------------+
| 863271 |
+------------------------+
1 row in set (0.05 sec)
mysql> select abs(lastvisit-lastactivity) from pre_common_member_status limit 1;
+-----------------------------+
| abs(lastvisit-lastactivity) |
+-----------------------------+
| 863271 |
+-----------------------------+
1 row in set (0.03 sec)
mysql> select lastactivity-lastvisit from pre_common_member_status limit 1;
ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(`discuz`.`pre_c
ommon_member_status`.`lastactivity` - `discuz`.`pre_common_member_status`.`las
tvisit`)'
mysql> select cast(lastactivity as signed)-cast(lastvisit as signed) from pre_co
mmon_member_status limit 1;
+--------------------------------------------------------+
| cast(lastactivity as signed)-cast(lastvisit as signed) |
+--------------------------------------------------------+
| -863271 |
+--------------------------------------------------------+
1 row in set (0.02 sec)
mysql> select abs(cast(lastactivity as signed)-cast(lastvisit as signed)) from p
re_common_member_status limit 1;
+-------------------------------------------------------------+
| abs(cast(lastactivity as signed)-cast(lastvisit as signed)) |
+-------------------------------------------------------------+
| 863271 |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
就出现ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的错误,因为结果可能会出现负数。。。。
过后查资料,发现可以通过下面的方法来解决:
[sql] view
plaincopy
mysql> select lastvisit, lastactivity from pre_common_member_status limit 1;
+------------+--------------+
| lastvisit | lastactivity |
+------------+--------------+
| 1199200260 | 1198336989 |
+------------+--------------+
1 row in set (0.01 sec)
mysql> select lastvisit-lastactivity from pre_common_member_status limit 1;
+------------------------+
| lastvisit-lastactivity |
+------------------------+
| 863271 |
+------------------------+
1 row in set (0.05 sec)
mysql> select abs(lastvisit-lastactivity) from pre_common_member_status limit 1;
+-----------------------------+
| abs(lastvisit-lastactivity) |
+-----------------------------+
| 863271 |
+-----------------------------+
1 row in set (0.03 sec)
mysql> select lastactivity-lastvisit from pre_common_member_status limit 1;
ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in '(`discuz`.`pre_c
ommon_member_status`.`lastactivity` - `discuz`.`pre_common_member_status`.`las
tvisit`)'
mysql> select cast(lastactivity as signed)-cast(lastvisit as signed) from pre_co
mmon_member_status limit 1;
+--------------------------------------------------------+
| cast(lastactivity as signed)-cast(lastvisit as signed) |
+--------------------------------------------------------+
| -863271 |
+--------------------------------------------------------+
1 row in set (0.02 sec)
mysql> select abs(cast(lastactivity as signed)-cast(lastvisit as signed)) from p
re_common_member_status limit 1;
+-------------------------------------------------------------+
| abs(cast(lastactivity as signed)-cast(lastvisit as signed)) |
+-------------------------------------------------------------+
| 863271 |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
mysql>
相关文章推荐
- ios添加GPUImage到项目
- @RequestBody、@ResponseBody的使用方法(2)
- Apue Chapter 4 习题答案
- Android Stuido使用常见问题总结
- @RequestBody、@ResponseBody的使用方法
- Android UI优化
- eas bos editUI 刷新方法 帮助类
- Handler Looper MessageQueue 深度总结
- js判断UUID正则表达式
- Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载)
- 动态调整UILabel的高度或宽度
- Android UI开发第二十六篇——Fragment间的通信
- UIButton相关
- UITextField属性
- android build 模式
- Xcode7 *** does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_
- uitableview ios7和后续系统 代理执行方法差异
- Cloud Design Pattern - Queue-Based Load Leveling(队列负载均衡)
- SOLR Jetty admin UI访问控制配置
- Cloud Design Pattern - Priority Queue Pattern(优先级队列模式)