还是响应公司的业务需求,在做统计表的时候需要对数字进行运算,可是由于前人的偷懒给我造成了很大的麻烦(居然将大写数字直接存入,没有阿拉伯数字,晕~);所以啊,我抱怨也没啥用,而且去网上也没有找到将中文大写数字转换为阿拉伯数字的mysql函数,没办法,没有*就只好造*啦!
话不多说,上代码:
CREATE DEFINER = ‘root‘@‘localhost‘
FUNCTION myhouse.change_to_num(cn_num varchar(255))
RETURNS int(11)
begin
declare i int default 1;
declare result int default 0;
declare str varchar(10);
declare num int;
declare temp int default 1;
while i <= char_length(cn_num) do
set str = substring(cn_num, i, 1);
set num = case str
when ‘零‘ then 0
when ‘壹‘ then 1
when ‘贰‘ then 2
when ‘叁‘ then 3
when ‘肆‘ then 4
when ‘伍‘ then 5
when ‘陆‘ then 6
when ‘柒‘ then 7
when ‘捌‘ then 8
when ‘玖‘ then 9
when ‘拾‘ then 10
when ‘佰‘ then 100
when ‘仟‘ then 1000
ELSE 0
end;
if num!=10 && num!=100 && num!=1000 then
set temp = num;
IF i=char_length(cn_num) THEN
SET result = result + temp;
END IF;
else
set result = result + (temp * num);
end if;
set i = i + 1;
end while;
return result;
end
我这个不能保证适用于所有转换,而且可能还有隐藏bug。。。因此仅供参考哈
mysql数据库函数(将中文大写数字转换为阿拉伯数字)