iki tarih arası sorgu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
iki tarih arası sorgu
Aşağıdaki kod ile 7 gün öncesi ile bugün arasında sorgu yapmak istiyorum ama hiç alakası olmayan bir sonuç çıkıyor. Kod şöyle.
vaktiyaklasan.close;
vaktiyaklasan.SelectSQL.clear;
vaktiyaklasan.SelectSQL.Add('select* from anatablo where (HATIRLATMATARIHI BETWEEN :ilktar AND :sontar)');
vaktiyaklasan.ParamByName('ilktar').value:=datetostr(Now-7); // 7 gün öncesi
vaktiyaklasan.ParamByName('sontar').Value:=datetostr(now); //bugün
vaktiyaklasan.open;
vaktiyaklasan.FetchAll;
Neden yanlış sonuç dönüyor acaba ?
vaktiyaklasan.close;
vaktiyaklasan.SelectSQL.clear;
vaktiyaklasan.SelectSQL.Add('select* from anatablo where (HATIRLATMATARIHI BETWEEN :ilktar AND :sontar)');
vaktiyaklasan.ParamByName('ilktar').value:=datetostr(Now-7); // 7 gün öncesi
vaktiyaklasan.ParamByName('sontar').Value:=datetostr(now); //bugün
vaktiyaklasan.open;
vaktiyaklasan.FetchAll;
Neden yanlış sonuç dönüyor acaba ?
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Re: iki tarih arası sorgu
Mask Edit ile istenilen tarihler arasıda veri çekiyorum (Databasedeki tarih alanını kontol et istersen) kolay gelsin
Kod: Tümünü seç
with Form1.Playlist do
begin
Close;
SQL.Clear;
SQL.Add('Select * From Playlist Where YAYINTARIHI BETWEEN :Tarih1 AND :Tarih2');
ParamByName('Tarih1').value := FormatDateTime('yyyy-mm-dd', StrToDate(MaskEdit1.Text));
ParamByName('Tarih2').value := FormatDateTime('yyyy-mm-dd', StrToDate(MaskEdit2.Text));
Prepared := True;
Open;
if IsEmpty then // Kayıt yoksa
begin
Label1.Caption := 'Belirtilen Tarihler Arasında Kayıt Bulunamadı!';
end
else
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: iki tarih arası sorgu
burda önemli olan tablonuzdaki HATIRLATMATARIHI alan tipi ve barındırdığı bilgilerdir. örneğin alan tipiniz datetime ise ve tarih formatı 2014-08-25 00:00:00 şeklinde görünüyor ise şeklinde düzeltirseniz sorununuz düzelebilir birde aynı alanda hem tarih hemde saat barındırıyorsanız bu sefer parametre değerlerinde saat bilgisinede yer vermeniz gerekecektir.
Kod: Tümünü seç
vaktiyaklasan.SelectSQL.Add('set dateformat dmy select* from anatablo where HATIRLATMATARIHI BETWEEN :ilktar AND :sontar');
Soru Sorarken yazmaya Üşenmeyen Parmaklar Sorunun Çözüldükten Sonra Teşekkür etmeye de Üşenmesin.
- greenegitim
- Üye
- Mesajlar: 713
- Kayıt: 28 Nis 2011 10:33
- Konum: İstanbul
Re: iki tarih arası sorgu
firebirde aşağıdaki kodla bu haftaki kayıtları listeletebiliyorum haftanın başlangıç gününü + 1 diyerek pazartesiden pazara kadar olan kayıtları listeletebiliyorum
Kod: Tümünü seç
select *
from FATURA
where FATURATARIHI between
cast('now' as date) - extract(weekday from cast('now' as date)) +1;
and
cast('now' as date) - extract(weekday from cast('now' as date))+ 7 ;
Mücadele güzelleştirir!
Re: iki tarih arası sorgu
Arkadaşlar HATIRLATMATARIHI alanı varchar olarak tanımlı. Yazmayı unutmuşum bu arada. Kusura bakmayın
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
- mysterious
- Üye
- Mesajlar: 14
- Kayıt: 10 Mar 2015 01:56
- Konum: KONYA / Ereğli
Re: iki tarih arası sorgu
kolay gelsin
ben iki tarih arası sorgulama yapabiliyorum ama bir türlü dbgrid de sonuçları gösteremiyorum neyden kaynaklana bilir baglantılar dogru formumda 1 tane adoquery 1 tane adotable 1 tane dbgrid ve 2 adet datetimepicker var yardımcı olursanız çok sevinirim kafayı yiyecem kodlar şu şekilde
kayıt var diyor ama dbgridde listelemiyor
ben iki tarih arası sorgulama yapabiliyorum ama bir türlü dbgrid de sonuçları gösteremiyorum neyden kaynaklana bilir baglantılar dogru formumda 1 tane adoquery 1 tane adotable 1 tane dbgrid ve 2 adet datetimepicker var yardımcı olursanız çok sevinirim kafayı yiyecem kodlar şu şekilde
Kod: Tümünü seç
RBTARIH_GUERY.Close;
RBTARIH_GUERY.SQL.Clear;
RBTARIH_GUERY.SQL.Add('SELECT * FROM [marketim_pro].[dbo].[KASA_HAREKET_TABLOSU] WHERE KASA_HAREKET_TARIHI BETWEEN :Tar1 AND :Tar2');
RBTARIH_GUERY.Parameters.ParamByName('Tar1').DataType := ftDate;
RBTARIH_GUERY.Parameters.ParamByName('Tar1').Value:=DateToStr(DateTimePicker1.Date);
RBTARIH_GUERY.Parameters.ParamByName('Tar2').DataType := ftDate;
RBTARIH_GUERY.Parameters.ParamByName('Tar2').Value:=DateToStr(DateTimePicker2.Date);
RBTARIH_GUERY.Open;
if RBTARIH_GUERY.IsEmpty then//Kayıt yoksa
begin
Label2.Caption:='Belirtilen Tarihler Arasında Kayıt Bulunamadı!';
end
else
begin
Label2.Caption:='kayıt var!';
end;
Bütün uyuyanları uyandırmaya bir tek uyanık yeter.
Re: iki tarih arası sorgu
Kayıt var diyorsa ve "kayıt varsa" kodlarda o zaman sorun yok, kayıtları listelemek için nasıl kod kullanıyorsunuz???
Kod: Tümünü seç
if RBTARIH_GUERY.IsEmpty then//Kayıt yoksa
begin
Label2.Caption:='Belirtilen Tarihler Arasında Kayıt Bulunamadı!';
end
else
begin
LİSTELEME KODLARI
end;
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: iki tarih arası sorgu
Bu arada küçük tavsiyem delphi code işleminde ctrl + d yap kodlar düzenlesin...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: iki tarih arası sorgu
Merhaba,sako yazdı:Arkadaşlar HATIRLATMATARIHI alanı varchar olarak tanımlı. Yazmayı unutmuşum bu arada. Kusura bakmayın
Eğer tarih değerleri ise öncelikle alan tipini tabloda "timestamp" bezeri bir değer yapmanı öneririm. Bunu yapamıyor isen HATIRLATMATARIHI alanını SQL içinde "CAST" ederek tarih tipine çevir. Bu çevrilmiş değeri kullan. Sorgu ilk verdiğin hali ile senin istediğin sonucu vermeyecektir. Bu da normaldir.
- mysterious
- Üye
- Mesajlar: 14
- Kayıt: 10 Mar 2015 01:56
- Konum: KONYA / Ereğli
Re: iki tarih arası sorgu
hocam adoqueryi datasource bagladım dbgridi de aynı datasource bagladım adoquery de yapılan sorgu datasource listeledigi zaman otomatik olarak dbgridde listelenmiş olmayacak mı acaba yalnış mı biliyorum
Bütün uyuyanları uyandırmaya bir tek uyanık yeter.
-
- Üye
- Mesajlar: 121
- Kayıt: 10 Ara 2015 10:39
Re: iki tarih arası sorgu
Doğru biliyorsun. Bağlantılarında sorun olmadığı sürece dbgrid de sorguna uygun kayıtlar listelenecektir.mysterious yazdı:hocam adoqueryi datasource bagladım dbgridi de aynı datasource bagladım adoquery de yapılan sorgu datasource listeledigi zaman otomatik olarak dbgridde listelenmiş olmayacak mı acaba yalnış mı biliyorum
- mysterious
- Üye
- Mesajlar: 14
- Kayıt: 10 Mar 2015 01:56
- Konum: KONYA / Ereğli
Re: iki tarih arası sorgu
evet hocam ama bir türlü listelemiyor aynı duruyor nerden kaynaklanabilir bir türlü çözemedim yada başka türlü yapabilirmiyim iki tarih arası sorguyu
Bütün uyuyanları uyandırmaya bir tek uyanık yeter.
Re: iki tarih arası sorgu
Gözümüzden bir şey kaçmış olabilir, projenizi paylaşırsanız bi bakalım...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: iki tarih arası sorgu
@ertank gerekli cevabı vermiş, dediği şekilde denedinizmi?ertank yazdı:Merhaba,sako yazdı:Arkadaşlar HATIRLATMATARIHI alanı varchar olarak tanımlı. Yazmayı unutmuşum bu arada. Kusura bakmayın
Eğer tarih değerleri ise öncelikle alan tipini tabloda "timestamp" bezeri bir değer yapmanı öneririm. Bunu yapamıyor isen HATIRLATMATARIHI alanını SQL içinde "CAST" ederek tarih tipine çevir. Bu çevrilmiş değeri kullan. Sorgu ilk verdiğin hali ile senin istediğin sonucu vermeyecektir. Bu da normaldir.
- mysterious
- Üye
- Mesajlar: 14
- Kayıt: 10 Mar 2015 01:56
- Konum: KONYA / Ereğli
Re: iki tarih arası sorgu
buyrun hocam projenin sorunlu formu kodlar içinde
- Dosya ekleri
-
- kasa_form.rar
- (14.54 KiB) 97 kere indirildi
Bütün uyuyanları uyandırmaya bir tek uyanık yeter.