mysql - 从 MySQL 中的 View 中选择的游标总是忽略过程中的小数点

标签 mysql stored-procedures view

我有一个返回两个小数的 View 和一个使用游标选择 View 的过程,问题是当从游标的 FETCH 中检索值时,小数点被删除或者它是一个整数。

我试过不同版本的MySQL,都是一样的。

CREATE VIEW show_numbers AS SELECT 1.32, 3.01;

DELIMITER //
CREATE PROCEDURE calculate_numbers()
BEGIN 

    DECLARE number_1 DECIMAL DEFAULT 0.0;
    DECLARE number_2 DECIMAL DEFAULT 0.0;

    DECLARE result CURSOR FOR
        SELECT * FROM show_numbers;

    open result;
    FETCH result INTO number_1, number_2;
    close result;

    SELECT number_1, number_2;

END

call calculate_numbers(); -- shows (1, 3) not(1.32, 3.01)

参见示例 here

最佳答案

您应该始终定义具有精度和小数位的 DECIMAL 数据类型。例如,您可以使用 DECIMAL(8,2)

参见 documentation .

关于mysql - 从 MySQL 中的 View 中选择的游标总是忽略过程中的小数点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58801033/

相关文章:

mysql查询查找当前日期后4天的日期

php - PDO (mysql) 参数号无效 : parameter was not defined

mysql - 从 mysql 中拖动并进行计数和限制

Oracle存储过程: return both result set and out parameters

sql-server - 在存储过程调用中转换?

ios - 根据限定符将变量设置为不同的自定义 View (Swift)

android - 将文本框添加到android中的 View

view - 在 XCode 4.5 中正确使用新的 "container view"?

php - Dreamweaver SQL 语法错误

java - 调用存储过程 (MySQL) 从 Hibernate 中抛出异常