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.
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