希望这对某人来说很快!我一直在寻找一段时间,对这个问题没有真正的答案。我在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天。
感谢您的帮助!
答案 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)