Como consultar dados com SQL filtrando pela data do sistema?
Problema:
Preciso fazer uma consulta com SQL que me retorne todos os registros em que o valor de um campo do tipo data seja igual ou anterior à dada do sistema. Como fazer?
Solução 1: Filtrar pela data atual do computador que está executando o programa.
Query.Close;
Query.SQL.Text := 'SELECT * FROM Tabela WHERE CampoData <= :Hoje';
Query.ParamByName('Hoje').AsDate := Date;
Query.Open;
Solução 2: Filtrar pela data atual do computador servidor onde está o banco de dados.
Query.Close; Query.SQL.Text := 'SELECT * FROM Tabela WHERE CampoData <= CURRENT_DATE'; Query.Open;
Observações
Dependendo do servidor de banco de dados que esteja usando, talvez tenha que trocar CURRENT_DATE por TODAY() ou outra função equivalente.