iki tarih arası sorgulama
Re: iki tarih arası sorgulama
query'e gönderdiğin kodu da yazarmısın.
Tarih aramasını yapabiliyorsa gerisi zaten çok basit. Sen tam olarak yazdığın kod bloğunu gönder bi bakalım.
Tarih aramasını yapabiliyorsa gerisi zaten çok basit. Sen tam olarak yazdığın kod bloğunu gönder bi bakalım.
Re: iki tarih arası sorgulama
Anladigim kadariyla veritabaninda iki adet tarih alani var, GIRISTARIHI ve CIKISTARIHI gibi. Asagidaki kod isinizi gorecektir;
Kod: Tümünü seç
//Q: TADOQuery
Q.Close;
Q.SQL.Clear;
Q.SQL.Add('SELECT * FROM REZERVASYON WHERE KORT=1 AND ');
Q.SQL.Add('((BASLANGIC>=:P1 AND BASLANGIC<=:P2 ) OR (BITIS>=:P1 AND BITIS<=:P2 ) OR (BASLANGIC<=:P2 AND BITIS>=:P1 ))');
Q.ParamByName('P1').Value := DTBAS.Date; //TDateTimePicker
Q.ParamByName('P2').Value := DTSON.Date - 1;
Q.Open;
Re: iki tarih arası sorgulama
Benim sorunum çözüldü @chasteeer adlı arkadaşında benzer problemi varmış ona yardım etmeye çalışıyorduk. Bu konunun altına devam etmiş. İsterseniz onun sorununa bir göz atın derim. İlginiz için teşekürlerErtugrul yazdı:Anladigim kadariyla veritabaninda iki adet tarih alani var, GIRISTARIHI ve CIKISTARIHI gibi. Asagidaki kod isinizi gorecektir;
Kod: Tümünü seç
//Q: TADOQuery Q.Close; Q.SQL.Clear; Q.SQL.Add('SELECT * FROM REZERVASYON WHERE KORT=1 AND '); Q.SQL.Add('((BASLANGIC>=:P1 AND BASLANGIC<=:P2 ) OR (BITIS>=:P1 AND BITIS<=:P2 ) OR (BASLANGIC<=:P2 AND BITIS>=:P1 ))'); Q.ParamByName('P1').Value := DTBAS.Date; //TDateTimePicker Q.ParamByName('P2').Value := DTSON.Date - 1; Q.Open;
Re: iki tarih arası sorgulama
herkese merhabalar benimde tarih ile alakalı bir sorunum var 01.04.2009 ile 31.04.2009 aralığındaki kayıtları listelemek istediğimde herhangi bir sorun yok kod çok güzel çalışıyor fakat bitiş tarihini 01.05.2009 tarihine aldığımda herhangi bir sonuç döndürmüyor bir türlü mantıgım bunu almadı yardımlarınızı bekliyorum nerde hata yapıyorum acaba
...
IBSQLSORGU.SQL.Add('select * from KAYIT where (TARIH between :ilkgun and :songun)');
IBSQLSORGU.SQL.Add('order by KAYITNO ASC');
IBSQLSORGU.ParamByName('ilkgun').Value:=Datetostr(DateTimePicker1.date);
IBSQLSORGU.ParamByName('songun').Value:=datetostr(DateTimePicker2.date);
IBSQLSORGU.Open;
IBSQLSORGU.FetchAll;

IBSQLSORGU.SQL.Add('select * from KAYIT where (TARIH between :ilkgun and :songun)');
IBSQLSORGU.SQL.Add('order by KAYITNO ASC');
IBSQLSORGU.ParamByName('ilkgun').Value:=Datetostr(DateTimePicker1.date);
IBSQLSORGU.ParamByName('songun').Value:=datetostr(DateTimePicker2.date);
IBSQLSORGU.Open;
IBSQLSORGU.FetchAll;
Re: iki tarih arası sorgulama
@fatmet,
Date turunden alanlarda parametre degerini string olarak gondermemeye ozen gosterin.
Date turunden alanlarda parametre degerini string olarak gondermemeye ozen gosterin.
Kod: Tümünü seç
IBSQLSORGU.Close;
IBSQLSORGU.SQL.Add('select * from KAYIT where (TARIH between :ilkgun and :songun)');
IBSQLSORGU.SQL.Add('order by KAYITNO ASC');
IBSQLSORGU.ParamByName('ilkgun').Value:=DateTimePicker1.date;
IBSQLSORGU.ParamByName('songun').Value:=DateTimePicker2.date;
IBSQLSORGU.Open;
-
- Üye
- Mesajlar: 508
- Kayıt: 30 Oca 2004 10:49
Re: iki tarih arası sorgulama
alan adını date diye yazmışsınız. Reserved keywordlerde sorun çıkıyor diye biliyorum. Tarih filan yapmalısınızchasteeer yazdı:http://tinypic.com/r/16jg0av/5
http://i43.tinypic.com/16jg0av.jpg
bu hata neyden kaynaklanıyor acaba lütfen yardım edin kafayı yiyeceğim(
Her zaman bir vâmuk-i azra olur alem bu ya,
Nev-be-nev efsaneler peydâ olur alem bu ya,
Kabz u bast kıl tefekkür aleminde ey gönül,
Vakt-i sermânın sonu, vakt-i germân olur alem bu ya...
Nev-be-nev efsaneler peydâ olur alem bu ya,
Kabz u bast kıl tefekkür aleminde ey gönül,
Vakt-i sermânın sonu, vakt-i germân olur alem bu ya...
Re: iki tarih arası sorgulama
ben şunu kullanıyorum
Kod: Tümünü seç
DAT0_.SQL.Add('AND GIRTARIH BETWEEN CONVERT(DATETIME, '''+FormatDateTime('yyyy.mm.dd 00:00',TAR1.DATE)+''', 102) AND CONVERT(DATETIME, '''+FormatDateTime('yyyy.mm.dd 23:59',TAR2.DATE)+''', 102)');
Re: iki tarih arası sorgulama
Kod: Tümünü seç
procedure TFUNIT.TarihArasiBul(ALAN1,ALAN2: string);
Var
Sorgu : WideString;
Kriter,Kriter1 : String;
begin
Kriter := FormatDateTime('DD/MM/YYYY', FSIPARISLISTESI.edTarih1.Date);
Kriter1 := FormatDateTime('DD/MM/YYYY', FSIPARISLISTESI.edTarih2.Date);
Sorgu :=
format
(
'SET DATEFORMAT DMY'+#13#10+
'DECLARE'+#13#10+
'@A SMALLDATETIME,'+#13#10+
'@B SMALLDATETIME'+#13#10+
'SELECT @A = %s 00:00:00'+#39+
'SELECT @B = %s 00:00:00'+#39+
'select * from'+#13#10+
'TBLSIPARIS'+#13#10+
'where'+#13#10+
'TBLSIPARIS.%S >= @a'+#13#10+
'and'+#13#10+
'TBLSIPARIS.%S <= @b',
[#39+Kriter,#39+Kriter1,ALAN1,ALAN2]
);
with DM.QSIPARIS do
begin
Close;
SQL.Clear;
SQL.Add(Sorgu);
Open;
end;
end;
amatör küme programcı 

-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
Re: iki tarih arası sorgulama
Tarih formatını [Gün].[Ay].[Yıl] olarak değil de [Yıl].[Ay].[Gün] olarak gönderilmesi sorununuzu çözebilir.
( MS-SQL 2005 çalışıyor )
( MS-SQL 2005 çalışıyor )