标签:lastvisit status .. UNSIGNED signed member cast lastactivity Mysql
因为2个时间在数据库里设计的都是无符号,但是使用结束时间-开始时间=负数,所以报错
今天在做一个功能的时候,用到两个时间戳相减来做查询条件,由于其两个字段都是unsigned的,并两个的大小是不一样。所以直接相减查询的时候,
就出现ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的错误,因为结果可能会出现负数。。。。
过后查资料,发现可以通过下面的方法来解决:
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>
标签:lastvisit,status,..,UNSIGNED,signed,member,cast,lastactivity,Mysql 来源: https://blog.csdn.net/minihuabei/article/details/123105245
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。