Я думаю, что вам нужно что-то вроде (псевдо-код)
Create PROCEDURE GetPartialTable
@DateValue datetime
AS
Begin
IF (@DateValue = '1900-01-01')
select * from table where field1 = 'x' and field2 = 'y' and field3 <= getdate();
else
select * from table where field1 = 'x' and field2 = 'y' and field3 = @DateValue;
END IF
END
Похоже на решение, приведенное выше, но результаты могут серьезно отличаться, если контекст более общий, например, если весь оператор SQL полностью отличается.