sql将阿拉伯数字转换为中文数字,MySQL数字转大写,自定义函数

CREATE FUNCTION `mathToChar`(`str` VARCHAR(100)) RETURNS VARCHAR(100) character set gbk
BEGIN 
DECLARE str1 VARCHAR(1) character set gbk DEFAULT  '' ; 
    DECLARE return_str VARCHAR(255) character set gbk DEFAULT '' ; 
    DECLARE i INT DEFAULT 1; 
    WHILE i < CHAR_LENGTH(str) + 1  DO 
     SET str1 = SUBSTRING(str,i,1);         
    CASE str1 
		WHEN '0' THEN SET str1 ="零";
    WHEN '1' THEN SET str1 ="一"; 
    WHEN '2' THEN SET str1 ="二"; 
    WHEN '3' THEN SET str1 ="三"; 
    WHEN '4' THEN SET str1 ="四"; 
    WHEN '5' THEN SET str1 ="五"; 
    WHEN '6' THEN SET str1 ="六"; 
    WHEN '7' THEN SET str1 ="七"; 
    WHEN '8' THEN SET str1 ="八"; 
    WHEN '9' THEN SET str1 ="九"; 
    END CASE;         
   
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用MySQL中的自定义函数来将金额转换汉字大写。以下是一个示例的MySQL函数,可以实现将金额转换汉字大写的功能: ```sql DELIMITER $$ CREATE FUNCTION num_to_rmb(IN num DECIMAL(18, 2)) RETURNS VARCHAR(255) BEGIN DECLARE result VARCHAR(255); DECLARE integer_part INT; DECLARE decimal_part INT; DECLARE temp VARCHAR(255); SET result = ''; SET integer_part = FLOOR(num); SET decimal_part = ROUND((num - integer_part) * 100); IF integer_part = 0 THEN SET result = '零元'; ELSE SET temp = ''; IF integer_part >= 100000000 THEN SET temp = CONCAT(temp, num_to_rmb(FLOOR(integer_part / 100000000)), '亿'); SET integer_part = integer_part % 100000000; END IF; IF integer_part >= 10000 THEN SET temp = CONCAT(temp, num_to_rmb(FLOOR(integer_part / 10000)), '万'); SET integer_part = integer_part % 10000; END IF; IF integer_part >= 1000 THEN SET temp = CONCAT(temp, num_to_rmb(FLOOR(integer_part / 1000)), '仟'); SET integer_part = integer_part % 1000; END IF; IF integer_part >= 100 THEN SET temp = CONCAT(temp, num_to_rmb(FLOOR(integer_part / 100)), '佰'); SET integer_part = integer_part % 100; END IF; IF integer_part >= 10 THEN SET temp = CONCAT(temp, num_to_rmb(FLOOR(integer_part / 10)), '拾'); SET integer_part = integer_part % 10; END IF; IF integer_part > 0 THEN SET temp = CONCAT(temp, num_to_rmb(integer_part)); END IF; SET result = CONCAT(temp, '元'); END IF; IF decimal_part = 0 THEN SET result = CONCAT(result, '整'); ELSE IF decimal_part >= 10 THEN SET result = CONCAT(result, num_to_rmb(FLOOR(decimal_part / 10)), '角'); SET decimal_part = decimal_part % 10; END IF; IF decimal_part > 0 THEN SET result = CONCAT(result, num_to_rmb(decimal_part), '分'); END IF; END IF; RETURN result; END$$ DELIMITER ; ``` 创建完上述函数后,您可以使用以下方式将金额转换汉字大写: ```sql SELECT num_to_rmb(12345.67) AS rmb_amount; ``` 该查询将返回"壹万贰仟叁佰肆拾伍元陆角柒分",表示金额为12345.67的汉字大写形式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值