巨坑:impala与hive中文字符长度不同带来的坑


在hive中,一个中文字符长度为1,

在impala中,一个中文字符长度为3!!!,这样,如果在impala中用substr()函数或者substring() 函数截取带有中文字符的字符串时,就不能把中文字符当成一个字符长度来处理,否则就会出现问题。

例如想要把‘你好2020’中的你好截取掉得到2020,应该是

select   substring('你好2020',7)

而不是

select   substring ('你好2020',3)