怎么看mysql位数 怎么查看mysql位数( 二 )


当两个操作数都是整数时使用操作符 (+、-、*、等) 。
通常你可以在一个BIGINT列中以字符串方式存储的一个精确的整数 。在这种情况下 , MySQL 将执行一个字符串到数字的转换,包括无 intermediate 的双精度表示法 。
当两个参数均是整数值时,“-”、“+”和“*”将使用BIGINT运算!这就意味着,如果两个大整数的乘积(或函数的结果返回整数)的结果大于9223372036854775807时,你可能会得到意想不到的结果 。
FLOAT(precision) [UNSIGNED] [ZEROFILL]一个浮点型数字 。
precision可以是=24作为一个单精度的浮点数字和介于 25 和 53 之间作为一个双精度的浮点数字 。这些类型与下面描述的FLOAT和DOUBLE类型相似 。FLOAT(X)有与相应的FLOAT和DOUBLE类型同样的范围,但是显示尺寸和十进制小数位数是未定义的 。在 MySQL 3.23 中,它是一个真实的浮点值 。而在 MySQL 早期的版本中,FLOAT(precision)通常有 2 小数位 。注意,由于在 MySQL 中所有的计算都是以双精度执行的,所以使用FLOAT可能带来一些意想不到的问题 。查看章节A.5.6 解决没有匹配行的问题 。
FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]一个小的(单精度) 浮点数字 。允许的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38 。如果UNSIGNED被指定,负值是不允许的 。M是显示宽度,D是小数位数 。FLOAT没有参数或有X= 24 的FLOAT(X)代表一个单精度的浮点数字 。
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]一个正常大小的(双精度)浮上数字 。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308 。如果UNSIGNED被指定,负值是不允许的 。M是显示宽度 , D是小数位数 。DOUBLE没胡参数或有 25 =X= 53 的FLOAT(X)代表一个双精度的浮点数字 。
DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL]
REAL[(M,D)] [UNSIGNED] [ZEROFILL]它们是DOUBLE同义词 。
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]一个未压缩(unpacked)的浮点数 。运作如同一个CHAR列:“unpacked” 意味着数字是以一个字符串存储的,值的每一位将使用一个字符 。小数点并且对于负数,“-”符号不在M中计算(但是它们的空间是被保留的) 。如果D是 0 , 值将没有小数点或小数部份 。DECIMAL值的最大范围与DOUBLE一致,但是对于一个给定的DECIMAL列,实际的范围可以被所选择的M和D限制 。如果UNSIGNED被指定 , 负值是不允许的 。如果D被忽略,缺省为 0 。如果M被忽略,缺省为 10 。在 MySQL 3.23 以前 , M参数必须包含符号与小数点所需的空间 。
DEC[(M[,D])] [UNSIGNED] [ZEROFILL]
NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL]DECIMAL的同义词 。
DATE一个日期 。支持的范围是'1000-01-01'到'9999-12-31' 。MySQL 以'YYYY-MM-DD'格式显示DATE值,但是允许你以字符串或数字给一个DATE列赋值 。查看章节6.2.2.2DATETIME、DATE和TIMESTAMP类型 。
DATETIME一个日期和时间的组合 。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59' 。MySQL 以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,但是允许你以字符串或数字给一个DATETIME列赋值 。查看章节6.2.2.2DATETIME、DATE和TIMESTAMP类型 。
TIMESTAMP[(M)]一个时间戳 。范围是'1970-01-01 00:00:00'到2037年间的任意时刻 。MySQL 4.0 和更早版本中 , TIMESTAMP值是以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式显示的,它取决于M是否是14(或省略)、12、8或6,但是允许你以字符串或数字给一个TIMESTAMP列赋值 。从 MySQL 4.1 开始 , TIMESTAMP以'YYYY-MM-DD HH:MM:DD'格式作为字符返回 。如果你你希望以数字形式返回则必须在该时间戳字段后加上 +0 。不同的时间戳长度是不支持的 。从 MySQL 4.0.12 开始,选项--new可以被用来使服务器与 4.1 一样运作 。TIMESTAMP列有益于记录一个INSERT或UPDATE操作的日期和时间,因为如果你自己没有给它赋值 , 它将被自动地设置为最近一次操作的日期和时间 。也可以通过给它赋一个NULL而使它设置为当前的日期和时间 。查看章节6.2.2 Date 和 Time 类型 。参数M只影响一个TIMESTAMP列的显示格式;它的值总是占用 4 个字节存储 。注意,当TIMESTAMP(M)列的M是 8 或 14 时,它返回的是数字而其它的TIMESTAMP(M)列返回的是字符串 。这仅仅是为了可以可靠地转储并恢复到其它格式的表中 。查看章节6.2.2.2DATETIME、DATE和TIMESTAMP类型 。TIME一个时间 。范围是'-838:59:59'到'838:59:59' 。MySQL 以'HH:MM:SS'格式显示TIME值,但是允许你使用字符串或数字来给TIME列赋值 。查看章节6.2.2.3TIME类型 。YEAR[(2|4)]一个 2 或 4 位数字格式的年(缺省为 4 位) 。允许的值是1901到2155、0000(4 位年格式) 以及使用 2 位格式的 1970-2069 (70-69) 。MySQL 以YYYY格式显示YEAR值,但是允许你使用字符串或数字来给YEAR列赋值 。(YEAR类型在 MySQL 3.22 之前不支持 。) 查看章节6.2.2.4YEAR类型 。

推荐阅读