I'm writing a query on a SQL Server table and I want to get all records for the current calendar year and the previous calendar year. So, right now, I'd want a query to return all records between January 1st, 2008 and today. But come January 1st, 2010, I want it to return records no older than 2009.

Essentially, I want to floor the current date to the beginning of the year and then subtract 1.

After rummaging through some SQL Server documentation, I came up with this:

WHERE create_date >= CAST((CAST(YEAR(GETDATE()) AS int) -1) AS varchar)