Это связано с Floor a date in SQL server, но я беру это один шаг дальше:Каков наилучший способ выполнить математику на пол в SQL Server?
Я пишу запрос на таблицу SQL Server, и я хочу, чтобы получить все записи за текущий календарный год и за предыдущий календарный год , Итак, прямо сейчас, я хочу, чтобы запрос возвращал все записи с 1 января 2008 года по сегодняшний день. Но прийти 1 января 2010 года, я хочу, чтобы возвращать записи не старше 2009 года
По существу, я хочу, чтобы пол текущая дата начала года, а затем вычесть 1.
После рыться некоторые Документация SQL Server, я придумал следующее:
WHERE create_date >= CAST((CAST(YEAR(GETDATE()) AS int) -1) AS varchar)
, но это кажется уродливым. Есть ли способ лучше?