划分两个整数以获得MySQL中的浮点数

时间:2014-08-06 16:13:35

标签: mysql floating-point user-defined-functions integer-division

我正在使用MySQL中的用户定义函数,该函数采用整数(mediumint)并将其除以100(即10785/100 = 107.85)。提供的整数是一个名为time的参数。我试过了

DECLARE dtime FLOAT;
SET dtime = time / 100;
DECLARE ftime VARCHAR(10);

导致错误,我假设是因为我将两个整数分开并将其分配给浮点

MySQL said: #1064 - You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near 
'DECLARE ftime VARCHAR(10);

我也试过

SET dtime = CAST(time as FLOAT) / 100.0;

但是这会抛出一个错误,因为它似乎无法将数字转换为浮点数。最后,我尝试使用十进制

DECLARE dtime DECIMAL(10,10);
SET dtime = CAST(time AS decimal(10,10)) / CAST(100 as decimal(10,10);
DECLARE ftime VARCHAR(10);

但是抛出相同的错误(near 'Declare ftime...)。实现这个目标的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

你能试试吗?

SELECT CAST(时间为十进制)/ CAST(100 AS十进制)

答案 1 :(得分:2)

Please read the documentation for the DECLARE statement syntax.

引用参考手册(上述链接):

  

DECLARE仅允许在BEGIN ... END复合语句中使用,必须在其开头,在任何其他语句之前

     

声明必须遵循一定的顺序。游标声明必须出现在处理程序声明之前。变量和条件声明必须出现在游标或处理程序声明之前。