在IBM db2 SQL中,下面的查询给出了2个不同的错误长度但相同的数字 为什么相同值有2种不同的长度?
select
decimal(TRIM(cast(15 as char(2)))||TRIM(LPAD(cast(7 as char(2)),2,'0'))||TRIM(LPAD(cast(13 as char(2)),2,'0'))),
length(decimal(TRIM(cast(15 as char(2)))||TRIM(LPAD(cast(7 as char(2)),2,'0'))||TRIM(LPAD(cast(13 as char(2)),2,'0')))),
decimal(TRIM(substr(replace(char(current_date -1 days,ISO),'-',''),3,6)),6,0),
length(decimal(TRIM(substr(replace(char(current_date -1 days,ISO),'-',''),3,6)),6,0))
from sysibm.sysdummy1
答案 0 :(得分:0)
DECIMAL(x,p,s)
返回精度为p的压缩十进制值,即刻度s。
压缩十进制(p,s)只占用p / 2 + 1字节的内存。
所以6/2 + 1 = 4,这是每个(DB2 for IBM i)manual
的压缩十进制表达式返回值LENGTH()
答案 1 :(得分:0)
这些数字与第一个数字15713
不同,第二个数字为150713
。