Как прокомментировали пользователи выше, вы не можете ссылаться на псевдонимы столбцов в предложениях WHERE в вашем запросе.Однако вы можете использовать преобразование столбца в предложении WHERE.Это не очень эффективно, но если вы используете запрос один или два раза (т. Е. Не в пакете служб SSIS или в автоматизированной задаче), все будет в порядке.
SELECT SubmitDate, Type, Location,CONVERT(datetime, SubmitDate, 101) AS DDate
FROM Employee
WHERE ([Type] IN ('C', 'Q'))
AND (CONVERT(datetime, SubmitDate, 101) > DATEADD(Day, - 1, GETDATE()))
Вторая проблема с вашим запросомэто предложение DATEADD.DATEADD требует трех параметров: datepart, число и дата.У вас неверная часть даты, или «в какой части даты вы выполняете арифметику».DDate
это не часть даты, это столбец.Частью даты являются такие значения, как Месяц, День, Год, Неделя и т. Д.
Я отредактировал запрос, чтобы установить для части даты значение «День», чтобы предложение оценивалось (используя псевдокод) GETDATE()-1 Day
, но вы можете установить его на GETDATE()-1 Month
или час.Но текущее выражение psedocode GETDATE()-1 DDate
не имеет смысла для вашего клиента SQL Server
Дополнительные сведения о DATEADD см. В документации Microsoft