返回首页

gbase数据、南大通用产品文档:GBase8sDECIMAL 数据类型

更新日期:2024年09月11日

DECIMAL 数据类型可采用两种格式:DECIMAL (p) 浮点和 DECIMAL (p,s) 定点。
在符合 ANSI 标准的数据库中,所有 DECIMAL 数字都是定点。
缺省情况下,数据库服务器将包括小数点 (.) 的文字数值解释为 DECIMAL 值。
DECIMAL(p) 浮点
DECIMAL 数据类型存储最多 32 个有效位的浮点十进制数字,其中 p 是总有效位数
(精度)。
可以选择指定精度。如果未指定任何精度 (p),那么将 DECIMAL 视为 DECIMAL(16)
(具有 16 位精度的浮点十进制)。DECIMAL(p) 具有在 10
-130 与 10
124 之间的绝对指数
范围。
如果在符合 ANSI 标准的数据库中声明 DECIMAL(p) 列,那么小数位的缺省值为
DECIMAL(p, 0) 意味着只能将整数值存储在此数据类型中。
在不符合 ANSI 标准的数据库中,DECIMAL(p) 是一个数值范围大到足以存储值的指
数符号表示法的浮点数据类型。
例如:以下计算说明 DECIMAL(5) 列在缺省语言环境中需要多少存储字节(其中小数
点占据一个单独的字节): 数据值的符号为 1 字节
第一个数字为 1 字节
小数点为 1 字节
其余数字为 4 字节(精度 5 - 1)
e 符号为 1 字节
指数符号为 1 字节
指数为 3 字节

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 96 -
-------------------------------------------------
总共 12 个字节 因此,DECIMAL(5) 列中的“12345”在不符合 ANSI 标准的数据库
内显示为“12345.00000”(即,有六位小数)。
DECIMAL (p,s) 定点
在定点数字 DECIMAL(p,s) 中,不管数字值如何,小数点都固定在特定位置。当您指
定此类型的列时,就将其精度 (p) 声明为它可存储的总位数(从 1 到 32)。将其小数
位 (s) 声明为小数部分的总位数(即,小数点右边的位数)。
绝对值小于 0.5 * 10
-s的所有数都具有值零。可存储而不会发生溢出错误的
DECIMAL(p,s) 数据类型的最大绝对值是 10
p-s - 10
-s。DECIMAL 列通常存储的是必须正确
存储和显示的带小数部分的数(例如,比率或百分率)。在符合 ANSI 标准的数据库中,
所有 DECIMAL 数的绝对值的范围必须在 10
-32 至 10
+31 内。
DECIMAL 存储器
数据库服务器使用一个字节的磁盘存储空间来存储两位十进制数,并加上一个字节来
存储指数和符号(第一个字节用 excess-65 格式表示一个符号位和 7 位指数)。余下的
字节将尾数表示为 base-100 位。小数点左边的有效位和小数点右边的有效位存储在独立
的字节组中。当使用最大精度规范时,DECIMAL(32,s) 数据类型可在小数点右边存储 s-1
个小数位数(如果 s 是奇数)。
在下面的示例中说明了数据库服务器存储小数的方式。如果指定 DECIMAL(6,3),那
么数据类型由整数部分中的三个有效位和小数部分中的三个有效位组成(例如:

Unable to copy jar file from client to server
使用 setJarTmpPath() 设置的路径名不能被用户 gbasedbt 或 JDBC 连接中指定的用户写入。

请确保路径名是可靠的,可以被任何用户写入。

函数说明
返回date 所代表的时间在年中的季度数,范围为1~4。
示例
示例1:返回“20-08-01”在2020 年中是第几季度。
gbase> SELECT QUARTER('20-08-01') FROM dual;
+---------------------+
| QUARTER('20-08-01') |
+---------------------+
|
3 |
+---------------------+
1 row in set