我正在使用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...
)。实现这个目标的正确方法是什么?
答案 0 :(得分:3)
你能试试吗?
SELECT CAST(时间为十进制)/ CAST(100 AS十进制)
答案 1 :(得分:2)
Please read the documentation for the DECLARE
statement syntax.
引用参考手册(上述链接):
DECLARE
仅允许在BEGIN ... END
复合语句中使用,必须在其开头,在任何其他语句之前。声明必须遵循一定的顺序。游标声明必须出现在处理程序声明之前。变量和条件声明必须出现在游标或处理程序声明之前。