MariaDB 10.6.
创建了以下函数:
CREATE
FUNCTION count_sum()
RETURNS DECIMAL(19, 3)
BEGIN
DECLARE result DECIMAL DEFAULT 0.000;
SET result = (SELECT SUM(ba.amount) FROM billing_account AS ba);
RETURN result;
END;
这里的字段billing_account.amount是 type DECIMAL(19, 3)。但是,作为函数调用的结果,我得到了一个四舍五入的整数值。如何避免四舍五入以获得带分数的确切数字?
这不是关于总和。如果类型为 simple
DECIMAL,则不存储小数部分(默认存储 0 个小数位)。使用 DECIMAL(32, 4) 存储 4 个小数位。将非整数插入类型列时,该
DECIMAL值被截断并发出警告:Data truncated for column如果您将值分配给 DECIMAL 变量,则会发生相同的截断,就像您的情况一样。