使用datetime作为SQL Server 2000中的列别名

时间:2012-05-10 09:26:10

标签: sql sql-server-2000

希望这对某人来说很快!我一直在寻找一段时间,对这个问题没有真正的答案。我在SQL Server 2000中有一个存储过程。我有一个变量@DayToCheck,它是一个日期时间。

@DayToCheck datetime

我需要将它用于我依赖的列。但它不起作用。我尝试过转换为varchar,但它也不喜欢。这是我需要使用的两个计数列。

sum(case when startdate=@DayToCheck then 1 else 0 end) as CONVERT(varchar, @DayToCheck, 103),
sum(case when startdate=DATEADD(day,-7,@DayToCheck) then 1 else 0 end) as DATEADD(day,-7,@DayToCheck)

所以上面应该有两列,它们的别名应该是日期(第一列)和第二列日期的-7天。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

你必须使用动态sql。也许是这样的:

DECLARE @DayToCheck datetime
SET @DayToCheck=GETDATE()

DECLARE @query NVARCHAR(4000)
SET @query=
N'SELECT
    sum(case when startdate=@DayToCheck then 1 else 0 end) as '+
    CONVERT(varchar, @DayToCheck, 103)+',
    sum(case when startdate=DATEADD(day,-7,@DayToCheck) then 1 else 0 end) as '+
    CONVERT(varchar, @DayToCheck, 103)+'
FROM
    table1'

EXECUTE(@query)