我指的是 Java Constant Field Values并考虑是否可以使用 SQL 查询为数据类型检索边界值(比如 MIN_VALUE
,MAX_VALUE
对于数值数据类型)。
例如
select
int.signed_min_value as int_sgnd_min,
int.unsigned_min_value as int_usgnd_min,
int.signed_max_value as int_sgnd_max,
int.unsigned_max_value as int_usgnd_max,
int.storage_bytes as int_bytes
from dual;
应该是结果
+--------------+---------------+--------------+---------------+-----------+
| int_sgnd_min | int_usgnd_min | int_sgnd_max | int_usgnd_max | int_bytes |
+--------------+---------------+--------------+---------------+-----------+
| -2147483648 | 0 | 2147483647 | 4294967295 | 4 |
+--------------+---------------+--------------+---------------+-----------+
以上结果为storage and range values defined for MySQL integer data type .
MySQL 中的其他数据类型存储要求定义为 here .
我只给出了一个关于数字数据类型的示例,但我也期待其他数据类型的可能性。
我确实知道我们只能选择
列和表达式,但我想了解 SQL 是否像 Java 和其他编程语言一样具有这种功能。
最佳答案
如果您指的是 Sql Server,则可以从 sys.types 表中获取该信息。如果你这样做:
select * from sys.types
where name='int'
可以查看max_length,它表示该类型的最大长度(以字节为单位)。所以 int = 4 bits whihc 给你 -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)
关于java - 使用任何 SQL 查询的数据类型范围值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11345950/