我尝试在sql中设置一个变量,如下所示:
DECLARE @fromDate VARCHAR(60);
SET @fromDate = '2013-01-01 00:00:00';
SET @toDate = '2013-02-01 00:00:00';
SELECT @fromDate;
但这不起作用。
我做错了什么?
答案 0 :(得分:2)
您不必DECLARE
以@
开头的变量。
MySQL有两种不同类型的变量。一个是会话变量,带有@
前缀。另一种类型是触发器或存储过程中的局部变量。
答案 1 :(得分:1)
DECLARE语句仅在存储过程或函数体内有效,并且此变量不以@
开头。
以@
开头的变量不需要DECLARE,只需在存储过程之外使用。
答案 2 :(得分:0)
首先让我们看一下如何在mysql中定义一个变量
要在mysql中定义变量,它应该以' @'开头。比如@ {variable_name}和这个' {variable_name}',我们可以用变量名替换它。
现在,如何在mysql中为变量赋值。为此我们有很多方法可以做到这一点
使用关键字' SET'。 示例: - mysql> SET @a = 1;
不使用关键字' SET'并使用':='。 示例: - mysql> @a:= 1;
使用' SELECT'声明。 示例: - mysql>选择1进入@a;
这里@a是用户定义的变量,1将在@a中分配。
现在如何获取或选择@ {variable_name}的值。
我们可以使用像
这样的select语句示例: -
mysql>选择@a;
它将显示输出并显示@a的值。
现在如何从变量中的表中分配值。
为此,我们可以使用两个语句: -
@a:=(从员工中选择emp_name,其中emp_id = 1); 从员工中选择emp_name到@a,其中emp_id = 1; 一定要小心,emp_name必须返回单个值,否则会在这种类型的语句中引发错误。
请参阅: - http://www.easysolutionweb.com/sql-pl-sql/how-to-assign-a-value-in-a-variable-in-mysql