Использовать дату и время в качестве псевдонима столбца в 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 дней от даты для второго столбца.

Спасибо за любую помощь!


person Matt Facer    schedule 10.05.2012    source источник
comment
Вы должны сделать это в динамическом sql   -  person Arion    schedule 10.05.2012


Ответы (1)


Вы должны использовать динамический 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)
person Arion    schedule 10.05.2012