Witam. Mam problem z utworzeniem zapytania sql w delphi 7. Probuje znalezc wiersze ktore posiadaja date mlodsza od podanej. W Oracle jest funkcja zamieniajaca string na date ( to_date ('data','maska_daty') ). Czy istnieje jakas analogiczna funkcja w delphi 7. korzystam z bazy danych typu paradox 7.
StrToDate('2004-07-24');
Oki moze podam wiecej szczegolow. Mam komponent TQuery do ktorego chce dac takie zapytanie:
var Zapytanie : String; // napis ktory bedzie interpertowany jako zapytanie sql
Zapytanie := 'select sum(Kwota) from "klienci_terminy.db" where ID_Klienta = ' + IntToStr (Numer_aktualnego_klienta) + ' and Termin_Zaplaty < StrToDate("2004-07-24")';
Jak zapisac w tym przypadku date o jaka mi chodzi by przelknelo to Interbase.
W oracle mozna zrobic tak:
select sum(Kwota) from "klienci_terminy.db" where ID_Klienta = ' + IntToStr (Numer_aktualnego_klienta) + ' and Termin_Zaplaty < to_date("2004-07-24", "yyyy-mm-dd")';
A jak to zrobic na bazie paradoxa poprzez Interbase z delphi 7 ??
nie rozumiem twojego problemy [???]
jaki masz format daty? TIMESTAMP? 0000:, 2004-07-27 - jeśli to TIMESTAMP, więc w czym problem?
Jak napisalbys takie zapytanie
select * from "klienci_terminy.db" where Termin_Zaplaty < 2004-11-30;
Nie potrafie powiedziec czy to jest Time Stamp bo nie wiem jak to sprawdzic. Jesli zrobie podglad bazy w Database desktop data jest wyswietlana w taki sposob 2004-11-30
Jesli podam do Komponentu TQuery zapytanie w takij formie jak widzisz na gorze zglasza mi sie blad "Time mismatch in expresion".
Chodzi o to jak w sql (w delphi) dac do zrozumienia ze 2004-11-30 to data.
Pierwszy raz pisze aplikacje w delphi. W java kozystajac z drivera ORACLE aby baza wiedziala ze 2004-11-30 to data uzywalo sie funkcji to_date ("2004-11-30", "yyyy-mm-dd").
czyli zapytanie wygladalo by w nastepujacy sposob:
select * from "klienci_terminy.db" where Termin_Zaplaty < to_date ("2004-11-30", "yyyy-mm-dd");
Bardzo prawdopodobne ze zle sie do tego zabralem (pierwszy raz w delphi).
Moze ty bys inaczej podszedl do tego zagadnienia.
zapytanie sql w Delphi to zwykły string: select * from TABELA where NP_DATE < '1990-11-30' - i to dziala!