mysql 16进制_MYSQL字符串转为16进制

本文介绍了一种在数据库中批量修改特定格式DTUCode的方法,通过SQL语句将0030开头的数据后四位转换为16进制,适用于数千条记录的高效处理。

开发有个同事,某个表的dtucode列的数据需要修改下,设计到几千条数据,手工作很要命。

dtucode的类型为varchar(20),需要把以0030开头,并且后四位转换为16进制。

00301100

00301101

00301102

实现方式:

SELECT CONCAT('0030',HEX(CONVERT((SUBSTRING(dtucode,5)),SIGNED ))),

HEX(CONVERT((SUBSTRING(dtucode,5)),SIGNED )),SUBSTRING(dtucode,5),dtucode

FROM table1 WHERE LENGTH(dtucode) = 8 AND dtucode LIKE '0030%';

结果:

003044c

003044d

003044e

查询convert用法:

CONVERT(expr,type), CONVERT(expr USING transcoding_name)

The CONVERT() and CAST() functions take a value of one type and produce a value of another type.

The type can be one of the following values:

BINARY[(N)]

CHAR[(N)]

DATE

DATETIME

DECIMAL[(M[,D])]

SIGNED [INTEGER]

TIME

UNSIGNED [INTEGER]

阅读(10137) | 评论(0) | 转发(0) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值