2

希望这对某人来说是一个快速的!我一直在寻找这个问题的真正答案。我在 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天。

谢谢你的帮助!

4

1 回答 1

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)
于 2012-05-10T09:31:47.327 回答