You are confusing the way that DB2 stores data internally with how many digits it can hold:
Smallint, 2 bytes internally, can hold up to 32,767.
Integer, 4 bytes internally, can hold up to 2,147,483,647.
Bigint, 8 bytes internally can hold up to 9,223,372,036,854,775,807.
The internal length of a decimal is (n+1)/2 where n is total precision defined.
Date is 4 bytes internally, but returned as 10 bytes (YYYY-MM-DD).
Timestamp is 10 bytes internally, but returned as 26 bytes