Comparação de Datas em SQL
Oi,
Estou tendo problemas para fazer comparações com datas em SQL. Pois gostaria de pegar a linha que tenha a data entre X e Y. Eu coloquei assim:
SELECT Valor FROM Quadro WHERE (Data_Comp >= ´+aux+´ AND Data_Comp <= ´+aux2+´)
Onde aux e aux2 são variáveis do programa (String). Bom, está dando um erro de ´Type mismatch in expression´. Como faço esta comparação?
Agradeço desde já a ajuda,
Mitsuo Takaki
Estou tendo problemas para fazer comparações com datas em SQL. Pois gostaria de pegar a linha que tenha a data entre X e Y. Eu coloquei assim:
SELECT Valor FROM Quadro WHERE (Data_Comp >= ´+aux+´ AND Data_Comp <= ´+aux2+´)
Onde aux e aux2 são variáveis do programa (String). Bom, está dando um erro de ´Type mismatch in expression´. Como faço esta comparação?
Agradeço desde já a ajuda,
Mitsuo Takaki
Mitsuo_takaki
Curtidas 0
Respostas
Rjanuzzi
15/07/2003
Olá Mitsuo,
O problema é que o SQL usa o formato mm/dd/yy, por isso não dá pra fazer uma comparação com uma variável string.
A saída é ou vc usar o formato mm/dd/yy nas suas strings, ou então usar a variável aux do tipo Tdate, que eu acho a melhor opção.
tipo assim:
var
aux1,aux2 : Tdate
begin
aux1 := strtodate(edit1.text);
aux2 := strtodate(edit2.text);
query1.sql.Clear;
query1.SQL.add(´select valor from quadro´);
query1.sql.add(´where data_comp >= :dt1 and data_comp <= :dt2´);
query1.ParamByName(´dt1´).AsDate := aux1;
query1.ParamByName(´dt2´).asdate := aux2;
query1.open;
Espero ter ajudado,
rjanuzzi
O problema é que o SQL usa o formato mm/dd/yy, por isso não dá pra fazer uma comparação com uma variável string.
A saída é ou vc usar o formato mm/dd/yy nas suas strings, ou então usar a variável aux do tipo Tdate, que eu acho a melhor opção.
tipo assim:
var
aux1,aux2 : Tdate
begin
aux1 := strtodate(edit1.text);
aux2 := strtodate(edit2.text);
query1.sql.Clear;
query1.SQL.add(´select valor from quadro´);
query1.sql.add(´where data_comp >= :dt1 and data_comp <= :dt2´);
query1.ParamByName(´dt1´).AsDate := aux1;
query1.ParamByName(´dt2´).asdate := aux2;
query1.open;
Espero ter ajudado,
rjanuzzi
GOSTEI 0
Mitsuo_takaki
15/07/2003
Oi rjanuzzi,
Muito obrigado pela ajuda, funcionou perfeito!! Eu já tinha tentando isso, mas ao invés de colocar .AsDate eu tinha colocado .Value. Muito obrigado mesmo,
Mitsuo Takaki
Muito obrigado pela ajuda, funcionou perfeito!! Eu já tinha tentando isso, mas ao invés de colocar .AsDate eu tinha colocado .Value. Muito obrigado mesmo,
Mitsuo Takaki
GOSTEI 0