色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql轉換成大寫數字

黃文隆2年前8瀏覽0評論

MySQL是一種流行的關系型數據庫管理系統,它支持多種編程語言和操作系統。在MySQL中,我們經常需要將數字轉換成大寫數字,這在中文報表和發票系統中非常常見。下面,介紹一下如何在MySQL中將數字轉換成大寫數字。

DELIMITER $$
DROP FUNCTION IF EXISTS `to_chinese_number` $$
CREATE FUNCTION `to_chinese_number` (in_num DECIMAL(19,2)) RETURNS varchar(255)
DETERMINISTIC
BEGIN
# 數字和中文數字對照表
DECLARE chinese_num CHAR(10) DEFAULT '零壹貳叁肆伍陸柒捌玖';
DECLARE chn_unit CHAR(10) DEFAULT '圓拾佰仟萬拾佰仟億拾佰仟';
DECLARE integer_part BIGINT;
DECLARE decimal_part DECIMAL(19,2);
DECLARE result VARCHAR(255) DEFAULT '';
DECLARE chn_char CHAR(1);
DECLARE digit CHAR(1);
DECLARE i INT DEFAULT 0;
DECLARE j INT DEFAULT 0;
DECLARE k INT DEFAULT 0;
SET integer_part = FLOOR(in_num);
SET decimal_part = (in_num - integer_part) * 100;
IF (integer_part = 0) THEN
SET result = CONCAT(result, SUBSTR(chinese_num, 1, 1));
END IF;
# 整數部分轉換
WHILE (integer_part >0) DO
SET chn_char = SUBSTR(chn_unit, (i % 4) * 2 + 1, 2);
SET digit = SUBSTR(integer_part, -1, 1);
SET result = CONCAT(SUBSTR(chinese_num, digit + 1, 1), chn_char, result);
SET integer_part = FLOOR(integer_part / 10);
SET i = i + 1;
END WHILE;
# 小數部分轉換
IF (decimal_part >0) THEN
SET result = CONCAT(result, '點');
WHILE (decimal_part >0) DO
SET digit = SUBSTR(decimal_part, -1, 1);
SET result = CONCAT(result, SUBSTR(chinese_num, digit + 1, 1));
SET decimal_part = FLOOR(decimal_part / 10);
END WHILE;
SET result = TRIM(TRAILING '零' FROM result);
END IF;
RETURN result;
END $$
DELIMITER ;

上面的代碼是一段MySQL函數代碼,通過使用該代碼可以將數字轉換成大寫數字。這個函數使用了一個數字和中文數字對照表和一個中文數字單位對照表。該函數接收一個DECIMAL類型的數字參數,返回一個varchar類型的結果。

使用該函數非常簡單,例如:

SELECT to_chinese_number(1234.56);

會返回:

壹仟貳佰叁拾肆圓伍角陸分

完整的使用教程可以在MySQL官方文檔中找到。