首页 > 数据库技术 > 详细

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

时间:2014-07-30 01:10:13      阅读:606      评论:0      收藏:0      [点我收藏+]

查询姓“刘”且全名为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‘

db2的char类型末尾都会以空格填充,布布扣,bubuko.com

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

原文:http://my.oschina.net/u/567296/blog/296048

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!