首页 > 代码库 > db2的char类型末尾都会以空格填充

db2的char类型末尾都会以空格填充

查询姓“刘”且全名为2个汉字的学生的姓名:

SELECT Sname 

FROM Student

WHERE Sname LIKE ‘刘__‘;

为什么没有结果呀?我把两下横线改为%后有结果出来,难道在DB2里面下横线不代表任意单个字符吗?



经过试验发现




db2的通配符“_”


只能匹配一个字节。db2情况下:


char类型, db2的char类型末尾都会以空格填充的。

如果你的sname定义为char(8), 那么‘刘xx‘在数据库里面实际上保存的是‘刘xx     ‘, 后面有5个空格的。

所以你用_查询的时候需要写成‘刘_______‘, 这样才能够正确匹配的。

db2的char类型末尾都会以空格填充的。



或者可以换个思路:

select * from T_BASICPERSONALCUSTOMERS WHERE  PERSONALNAME  like ‘汪%英‘ and length(PERSONALNAME) = 6   

这样能匹配出来  汪法英   汪去英 等数据



匹配时间时格式可以用2014-07-25 15:56:00的    以下句子可以查到数据  但是不能用2014/07/25 15:56:00  这种形式   但是db2中可能存储的形式就是2014/07/25 15:56:00 这种的。

select * from T_BASICPERSONALCUSTOMERS WHERE UPDATETIME BETWEEN ‘2014-07-25 15:56:00‘ and ‘2014-07-25 19:11:37‘