SELECT Date_Received, DateAdd(Year, DateDiff(year, Cast('3/01/2010 12:00:00AM' as DateTime) ,
GetDate())-1, Cast('3/01/2010 12:00:00AM' as DateTime)) as minimum_date
FROM [Volunteers].[dbo].[Applications]
WHERE Date_received >= DateAdd(Year, DateDiff(year, Cast('3/01/2010 12:00:00AM' as DateTime),
GetDate())-1, Cast('3/01/2010 12:00:00AM' as DateTime))
В нескольких подзапросах, где мне нужно проверить, что дата находится в допустимых пределах.Мне нужно избегать использования простой константы, поскольку я действительно не хочу обновлять ее или конфигурационный файл каждый новый учебный год.
Мое текущее решение - ввести дату в запрос и использовать некоторые сложные DATEADD
хитрости, чтобы получить текущий год (или предыдущий год) в дату, которую я использую в сравнении.Точный код выше.Есть ли для меня более чистый способ сделать это?
Спасибо
Редактировать
Бизнес-требование состоит в том, чтобы найти заявки, поданные в период с 3/01 по 7/31.
Мы проводим проверку данных, и это стоит нам денег за каждую проверку.Выявление заявок, поданных в течение этого периода времени, помогает нам определить, следует ли нам проводить полную, частичную проверку или проверку вообще не проводится.Мне также нужно будет проверить, относятся ли даты к предыдущему году.
Мы будем делать это каждый год, и нам нужно знать, были ли они в текущем году.Ведение запросов каждый год для обновления дат - это не то, что я хочу делать.
Поэтому я ищу хороший метод, позволяющий сохранять релевантность частей года в году без необходимости обновлять запрос или файл конфигурации..