Не намного лучше ...
DATEDIFF(
month,
DATEADD(Year, MonthlyShipments.Year-1900,
DATEADD(Month, MonthlyShipments.Month-1, 0)
),
GETDATE()
) BETWEEN 1 AND 3
однако вложенный DATEADD можно сделать вычисляемым и проиндексированным столбцом
ALTER TABLE MonthlyShipments ADD
ShipDate AS DATEADD(Year, MonthlyShipments.Year-1900,
DATEADD(Month, MonthlyShipments.Month-1, 0)
)
, который дает
WHERE DATEDIFF(month, ShipDate, GETDATE()) BETWEEN 1 AND 3