我正在尝试获取日期(如 000,001...999..n(,当我使用 while 循环中的right()
函数时,选择它工作正常。如果我将其分配给变量,结果会有所不同。
DECLARE @cnt_chr INT = 1;
DECLARE @cnt_num INT = 1;
DECLARE @num varchar;
DECLARE @chr varchar;
DECLARE @full varchar;
WHILE @cnt_num <= 999
BEGIN
select RIGHT(CONCAT('000', CONVERT(varchar, @cnt_num)), 3);
SET @cnt_num = @cnt_num + 1;
END;
如果我在开始之后这样写:
@num = RIGHT(CONCAT('000', CONVERT(varchar, @cnt_num)), 3);
SET @cnt_num = @cnt_num + 1;
print @num;
结果是不同的。可能是什么原因?
你需要声明一个长度varchar
,例如
DECLARE @num varchar(5);