format(x,d)不能正常运行mysql函数

时间:2013-06-01 05:49:30

标签: mysql sql

我在MySQL中跟踪sql查询以返回2位小数的结果。

FORMAT(((sold_amt - purchased_amt) * 5 / 100 * sold_qty), 2)

在Store Procedure中使用它时工作正常。但是当它在MySQL Function中使用时,它不会给出预期的结果。相反,它给出了所有小数值。 FORMAT(x, d)是否适用MySQL Function

我的MySQL函数的完整代码是:

CREATE DEFINER=`root`@`localhost` 
FUNCTION `get_capital_gain`(purchased_amt FLOAT, sold_amt FLOAT, sold_qty INT(5)) 
RETURNS FLOAT
BEGIN
    IF sold_amt > purchased_amt THEN
        RETURN FORMAT(((sold_amt - purchased_amt) * 5 / 100 * sold_qty), 2);
    ELSE 
        RETURN 0.00;
    END IF; 
END$$

1 个答案:

答案 0 :(得分:2)

试试这个。它返回一个字符串而不是一个浮点数,因此将保留格式。

CREATE DEFINER=`root`@`localhost` 
FUNCTION `get_capital_gain`(purchased_amt FLOAT, sold_amt FLOAT, sold_qty INT(5)) 
RETURNS VARCHAR(20)
BEGIN
    IF sold_amt > purchased_amt THEN
        RETURN FORMAT(((sold_amt - purchased_amt) * 5 / 100 * sold_qty), 2);
    ELSE 
        RETURN '0.00';
    END IF; 
END$$