No es necesario tener una columna calculada para "buscar en una tabla" filas que coincidan con un año. Escriba su cláusula where usando un intervalo en su lugar y tenga un índice en su columna de fecha.
select SomeColumn
from YourTable
where ActivityDate >= '20110101' and
ActivityDate < '20120101'
Si desea usar un int (año) como argumento para la consulta en lugar de dos cadenas, puede usar dateadd
. Solo asegúrese de no aplicar ninguna función/manipulación a la columna ActivityDate porque SQL Server no podrá usar el índice si lo hace.
declare @Year int = 2011
select SomeColumn
from YourTable
where ActivityDate >= dateadd(year, @Year-1900, 0) and
ActivityDate < dateadd(year, @Year-1899, 0)