我在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$$
答案 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$$