İKİ TARİH ARASI FİLTRELEMEDE PROBLEM

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
antalyali
Üye
Mesajlar: 8
Kayıt: 01 Nis 2007 02:00
Konum: antalya

İKİ TARİH ARASI FİLTRELEMEDE PROBLEM

Mesaj gönderen antalyali »

Öncelikle hepinize selamlar forumda arattım fakat br türlü çözümünü bulamadım fdb databesimde oluşturduğum bir table içerisinde bulunan tarih kısmında belirli İbquery aracılığıyla tarihler arasında filtreleme yaptırmak istiyorm bağlı TARİH fieldine kaydı DBedit ile giriyorum kayıt oluyor veri tipi VARCHAR önce formumuzda gördüğüm aşağıdaki kodları
ibtable a uyguladım hiçbir hareket olmadı

table2.FilterOptions:=[foCaseInsensitive];
Table2.Filter:='Tarih>='+QuotedStr(datetostr(datetimepicker1.Date)) + ' and ' + 'Tarih<='+QuotedStr(datetostr(datetimepicker2.Date));
Table2.Filtered:=true;

daha sonra aralık sorgulaması yaptırdım aşağıdaki komutta sorgulama yapıyor ancak mesela 15.01.2007 ile 10.12.2007 arasında filtreleme yaptırdığımda 09.01.2008 ve buna benzer 2008 yılındaki tüm kayıtlarıda gösteriyor sebebi galiba tarih field inde kayıtlı tarihi 09+01+2008 olarak görüyor yada başka bir nedeni var bu konuda yardımcı olacak herkesten Allah razı olsun komut aşağıda

var
tar1,tar2 : String;
begin
tar1:=datetostr(dateTimePicker1.date);
tar2:=datetostr(dateTimePicker2.date);

query1.Close;
query1.sql.Clear;
query1.sql.add('Select * from OLAY');
query1.sql.add('WHERE TARIH between :t1 and :t2');
query1.Params.ParamByName('t1').Value:=tar1;
query1.Params.ParamByName('t2').Value:=tar2;
query1.Open;
end;
Ülkemizin geleceği için Genç beyinlerin devamlı öğrenmesi ve uygulama yapması gereklidir Bu da önce ilgi sonra bilgi paylaşımıyla olur.
F.Atagun
Üye
Mesajlar: 158
Kayıt: 01 Oca 2008 01:56

Mesaj gönderen F.Atagun »

Hocam aşağıdaki kodu başarıyla kullanıyorum.

Kendine göre şekillendir lütfen.

Kolaylıklar dilerim



Kod: Tümünü seç

adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select CekNo,islemtarihi, TakasBankasi,Takassubesi,CekBanka, CekSube,Aciklama, Vade, Tutar from _TakasCekleri where Vade BETWEEN :tarih1  and :tarih2 order by Vade');
AdoQuery1.Parameters.Parambyname('tarih1').DataType := ftDate;
AdoQuery1.Parameters.Parambyname('tarih1').Value := datetimepicker1.date;
AdoQuery1.Parameters.Parambyname('tarih2').DataType := ftDate;
AdoQuery1.Parameters.Parambyname('tarih2').Value := datetimepicker2.date;
adoquery1.Open;
alakel
Üye
Mesajlar: 45
Kayıt: 03 Nis 2007 02:42

Mesaj gönderen alakel »

procedure TCARIHAREKET.XiButton2Click(Sender: TObject);
begin
dm.carihareket.FilterOptions:=[foCaseInsensitive];
dm.carihareket.filter:='tarih>='''+cxdateedit2.Text+'''and tarih<='''+cxdateedit3.text+'''';
dm.CARIHAREKET.Filtered:=true;
cxdateedit2.Text:='';
cxdateedit3.Text:='';
frxReport1.ShowReport(true);
dm.CARIHAREKET.Filtered:=false;
end;
bunu ben kullanıyorum 2 tarih arası filtreleme yapıyor. tarih alanı ise db de (firebird) date. sen varchar yapmışsın
Cevapla