如何使INTO关键字适用于所有数据类型

时间:2016-04-04 14:19:17

标签: mysql

在我的存储过程中:

DECLARE execution_time DATETIME;
SELECT `Execution_Time`
FROM `orders`
WHERE `ID` = 1
INTO execution_time;

除非Execution_Time和execution_time是整数,否则此查询似乎不起作用。如果它们都是varcharsdatetime,它们似乎无效。 execution_time仍为NULL

是否有特定的方法使其适用于其他数据类型而不仅仅是整数?

2 个答案:

答案 0 :(得分:0)

您的代码应该适用于字符串,数字和日期。我很确定问题是列和变量之间的混淆。你可以尝试:

DECLARE v_execution_time DATETIME;
SELECT `Execution_Time`
FROM `orders`
WHERE `ID` = 1
INTO v_execution_time;

或者,我可能做的事情:

DECLARE @execution_time DATETIME;
SELECT @execution_time := o.Execution_Time
FROM orders o
WHERE o.ID = 1;

我认为into存在与Oracle的(某种)兼容性。 MySQL有更简单的方法来分配变量。

答案 1 :(得分:-1)

了解select ... into。你应该在......之前写入条款 为你的例子:

DECLARE execution_time2 DATETIME;
SELECT `Execution_Time`
INTO execution_time2
FROM `orders`
WHERE `ID` = 1;

和"局部变量的名称不应与表格列相同"阅读Local Variable Scope and Resolution