在SQL中如何获取整数的最大值?
发布时间:2020-12-12 16:09:26 所属栏目:MsSql教程 来源:网络整理
导读:我试图从MySQL数据库中找出一个整数(有符号或无符号)的最大值.有没有办法从数据库本身拉回这些信息? 是否有任何内置的常量或函数我可以使用(标准SQL或MySQL具体). 在http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html它列出了值 – 但是有一种数据
我试图从MySQL数据库中找出一个整数(有符号或无符号)的最大值.有没有办法从数据库本身拉回这些信息?
是否有任何内置的常量或函数我可以使用(标准SQL或MySQL具体). 在http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html它列出了值 – 但是有一种数据库告诉我的方法. 以下给出了MAX_BIGINT – 我想要的是MAX_INT. SELECT CAST( 99999999999999999999999 AS SIGNED ) as max_int; # max_int | 9223372036854775807 提前致谢, 解决方法在Mysql中有一个很便宜的手段:mysql> select ~0; +----------------------+ | ~0 | +----------------------+ | 18446744073709551615 | +----------------------+ 波浪号是逐位否定.得到的值是一个bigint.见:http://dev.mysql.com/doc/refman/5.1/en/bit-functions.html#operator_bitwise-invert 对于其他整数风格,您可以使用正确的位移操作符>>像这样: SELECT ~0 as max_bigint_unsigned,~0 >> 32 as max_int_unsigned,~0 >> 40 as max_mediumint_unsigned,~0 >> 48 as max_smallint_unsigned,~0 >> 56 as max_tinyint_unsigned,~0 >> 1 as max_bigint_signed,~0 >> 33 as max_int_signed,~0 >> 41 as max_mediumint_signed,~0 >> 49 as max_smallint_signed,~0 >> 57 as max_tinyint_signed G *************************** 1. row *************************** max_bigint_unsigned: 18446744073709551615 max_int_unsigned: 4294967295 max_mediumint_unsigned: 16777215 max_smallint_unsigned: 65535 max_tinyint_unsigned: 255 max_bigint_signed: 9223372036854775807 max_int_signed: 2147483647 max_mediumint_signed: 8388607 max_smallint_signed: 32767 max_tinyint_signed: 127 1 row in set (0.00 sec) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |