我是SQL语句的新手,我猜这是显而易见的,所以我提前为新手问题道歉。
以下是代码:
use test;
declare @time_24_2 int;
declare @hours_diff_2 int;
SELECT
end_date_full
FROM
example
WHERE
datediff(hour, getdate(), end_date_full) < 24
GROUP BY
end_date_full
SET @time_24_2 = end_date_full;
select @time_24_2
这是我的代码,我只是想拉出符合条件的每一行的end_date_full
列。但是,每当我尝试使用如下所示的end_date_full
列时,我都会收到错误消息 Unknown column name 。
任何帮助都会很棒!
P.S end_date_full
是一个列名,它适用于第一个select语句,而不适用于SET
语句。
答案 0 :(得分:4)
这是因为当您将查询分配给变量时,您尝试在查询外部使用列名。这应该可以解决问题:
SELECT @time_24_2 = end_date_full
FROM example
WHERE datediff(hour, getdate(), end_date_full) < 24
group by end_date_full