Pesquisar data mais proxima

Pessoal,

Qual é a melhor forma de pegar uma data mais próxima de uma data informada? Mas com um detalhe: A DATA MAIS PRÓXIMA PODE ESTAR ANTES OU DEPOIS DA DATA INFORMADA.

O que tu queres portanto, é a data cujo módulo da diferença para a data atual seja menor, certo?

Exato. Pra ficar mais claro é a data mais próxima sendo antes ou depois.

Dependendo do motor de BD que tenhas, a syntaxe pode variar um pouco.

Em ORACLE seria assim

SELECT t.*
FROM table t
where abs(mydatefield-SYSDATE) = (select min (abs(mydatefield-SYSDATE)) from table)

No meu caso é o sqlserver

Nesse caso só tens de mudar a subtração de datas para a função datediff e usar o GETDATE() em vez de sysdate para obter a data atual