我试图像这样在MySQL中声明和操作变量:
DECLARE @tim;
//find the difference between current time and time at which the data was stored in the database
SET @tim=(select TIMEDIFF(NOW(),E.reg_date)
FROM `mytable2` E)
但是我收到以下错误:
错误:#1064 - 您的SQL语法出错;检查手册 对应于您的MySQL服务器版本,以获得正确的语法 使用附近的'DECLARE @ tim'在第1行
导致此错误的原因是什么,我该如何避免? MySQL服务器版本是5.6.17。
答案 0 :(得分:1)
正如错误消息所示,您的语法错误。
SET
变量,不要DECLARE
它。 DECLARE
仅在处理例程(如存储过程,函数和触发器)中的变量时使用。见the documentation:
仅在DECLARE
复合语句中允许
BEGIN ... END
并且必须在任何其他陈述之前开始。
你正试图在例行公事之外set a user-defined variable:
设置用户定义变量的一种方法是发出SET语句:
SET @var_name = expr [, @var_name = expr] ...
您需要了解的有关此声明的所有信息,包括有关设置会话和全局变量的相关信息,都在the documentation for SET
。
答案 1 :(得分:-1)
select TIMEDIFF(NOW(),E.reg_date) into @tim FROM mytable2 E