使用microsoft sql server 2012有一个基本的SQL问题

时间:2014-03-19 07:05:13

标签: sql sql-server sql-server-2012-express

我是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语句。

1 个答案:

答案 0 :(得分:4)

这是因为当您将查询分配给变量时,您尝试在查询外部使用列名。这应该可以解决问题:

SELECT @time_24_2 = end_date_full 
FROM example 
WHERE datediff(hour, getdate(), end_date_full) < 24
group by end_date_full