GBase 8s
适配迁移
文章
decimal和money精度如何查询
发表于2023-10-25 15:30:3198次浏览1个评论
通常我们查询列的属性都会查询syscolumns这个系统表,但是发现,并没有decimal和money之类的数据类型的精度等信息,根据手册描述可知,collength存储的是列长,单位是字节Byte,而collength = (precision * 256) + scale如图所示,以decimal为例

可知2565 = 10*256+5
那么我们如何根据collength反推出来precision,scale呢,可使用如下公式
precision = collength >> 8,为向右逻辑位移8位,或者用collength/256取商,两种方式得出结果均为10
scale = scale & 255,此处为按位与,或者collength/256取余数,两种方式得出结果均为5可以看出,按照上述公式计算出来的结果和我们创建出来的结果一致
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526