Creo que puedes obtener el mismo resultado haciendo una consulta sobre la tabla con un WHERE por la fecha y luego ordenando (ORDER BY); La primera fecha (TOP 1) será la más próxima.
En todo caso un UNION para obtener la más cercana "por encima" y la más cercana "por abajo"; Luego es cuestión de entre esas dos escoger una.
No se si me he explicado bien...
Código SQL
[-]
SELECT TOP 1 FROM TABLA WHERE FECHA>:datofecha ORDER BY FECHA ASC
UNION
SELECT TOP 1 FROM TABLA WHERE FECHA<:datofecha ORDER BY FECHA DESC
Te debería dar las dos fechas más cercanas (creo
).