DB2:不同的

时间:2015-07-14 19:39:32

标签: db2

在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

2 个答案:

答案 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