在SQL中如何获取整数的最大值?

我试图从MysqL数据库中找出一个整数(有符号或无符号)的最大值.有没有办法从数据库本身拉回这些信息?

是否有任何内置的常量或函数我可以使用(标准sqlMysqL具体).

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)

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...