Fórum Comparação de Datas em SQL #169586
15/07/2003
0
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
Curtir tópico
+ 0
Responder
Posts
15/07/2003
Rjanuzzi
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
Responder
Gostei + 0
16/07/2003
Mitsuo_takaki
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
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)