首页 > 开发 > 综合 > 正文

中英文字符混合处理方法

2024-07-21 02:07:59
字体:
来源:转载
供稿:网友

1,txt文件导入sql时

303410001401??????? 600 lang 4-t粤ig? 0220??? 011840628900000?? bpo
303410001501??????? 600 landau中er? 0220??? 011840628900000?? bpo
303410001601??????? 600 lang 6-t汉ig? 0220??? 011840628900000?? bpo

有此一txt文件要导入sql,有固定数据格式,因无明显界定符,将其导成一列,再在sql中截取分离,存在以下问题:

数据结构给定的长度是单字节长度,但在sql中使用substring()一个汉字只算一位,在些要求中因汉字是无固定位置,如只算一位将影响后面数据正确性

解决方法:cast(substring(cast(col001 as varbinary(1000)),39,4) as char(18)) as time_id

就是先将字段转成varbinary类型,这样汉字也算2位,截取就满足了固定格式要求了,然后再转回字符型。

2,sql表导出至txt中

使用cast(????? as char(20))限定

3,取长度

len()汉字只算1位

使用datalength()汉字算2位

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表