iki tarih arası sorgu, farklı bir soru

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Gk_imptob
Üye
Mesajlar: 84
Kayıt: 01 Kas 2005 12:34

iki tarih arası sorgu, farklı bir soru

Mesaj gönderen Gk_imptob »

Herkese merhaba,

İçinden çıkamadığım bir konu hakkında sizlerden yardım rica ediyorum. Bir adet FB hazırlanmış Döviz tablom var.FY2009 ve FY2010 dönemleri içersinde, başlangıç ve bitiş tarihleri arasında kur tahmini yapılıyor.Örnek 2009 döneminde USD ortalama 1,35 olur gibi.

PK - Dönem - Başlangıç Tarih - Bitiş Tarih - USD - EUR - GBP
1...|FY2009| |01.10.2008| |30.09.2009| |1,35| |1,8| |2,2|
2...|FY2010| |01.10.2009| |30.09.2010| |1,5 | |2,1| |3 |

Benim yapmak istediğim sorgu şekli, Örnek: 02.03.2009 tarihi hangi dönem içersinde ise, o döneme ait USD kurunu bana getirsin.Araştımalarımdan aşşağıdaki SQL kodunu buldum fakat işime yaramadı.

İbquery1.SQL.Add('select USD from Doviz where BaslangicTarih between BitisTarih and '02.03.09'') dediğimde bana null kayıt getiriyor.

Bu konuda yardımlarınızı ve önerilerinizi bekliyorum.

Teşekkürler.
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: iki tarih arası sorgu, farklı bir soru

Mesaj gönderen CiTiZEN »

aynı konudan 2 tane açmışsınız lütfen birisini silin.
UWESIS CORPORATION
ZeynelAbidin
Üye
Mesajlar: 69
Kayıt: 02 Oca 2009 09:03

Re: iki tarih arası sorgu, farklı bir soru

Mesaj gönderen ZeynelAbidin »

Kod: Tümünü seç

İbquery1.SQL.Add('select USD from Doviz where BaslangicTarih>'+quotedstr(datetostr(02.03.2009))+'BitisTarih<'+quotedstr(datetostr(02.03.2009))+)
bu kod işinizi görecektir.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: iki tarih arası sorgu, farklı bir soru

Mesaj gönderen conari »

arada bir and eksik. ayrıca > < işaretleri ile = de kullanmak lazım.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Gk_imptob
Üye
Mesajlar: 84
Kayıt: 01 Kas 2005 12:34

Re: iki tarih arası sorgu, farklı bir soru

Mesaj gönderen Gk_imptob »

Cevab veren arkadaşlara teşekkür ederim. Verdiğiniz kod çalışıyor fakat sonuç döndürmüyor.Sonucu null veriyor.Yazdığım tarihi iki tarih arasında sorgulama yapamıyor.Aynı kodu bide ibexpert'te SQL editorde denemedim.Kod hata vermiyor fakat sonuç null, boş geliyor.

Delphi kod

Kod: Tümünü seç

ibquery2.SQL.Add('select * from Doviz where BaslangicTarih>='+QuotedStr(DateToStr(DateTimePicker1.Date)) + ' and ' + BitisTarih<='+QuotedStr(DateToStr(DateTimePicker1.Date)));
ibexper Kod

Kod: Tümünü seç

select * from Doviz where BaslangicTarih>='08.10.2008' and BitisTarih<='08.10.2008'
Teşekkürler.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: iki tarih arası sorgu, farklı bir soru

Mesaj gönderen conari »

tarihleri parametre olarak gönderin.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: iki tarih arası sorgu, farklı bir soru

Mesaj gönderen emin_as »

Bu şekilde yazarsan boş gelir

Kod: Tümünü seç

select * from Doviz where BaslangicTarih>='08.10.2010' and BitisTarih<='08.10.2010'
Tabloya bakalım.
PK - Dönem - Başlangıç Tarih - Bitiş Tarih - USD - EUR - GBP
1...|FY2009| |01.10.2008| |30.09.2009| |1,35| |1,8| |2,2|
2...|FY2010| |01.10.2009| |30.09.2010| |1,5 | |2,1| |3 |

Tablo yukarıdaki gibiyse dogal olarak boş gelecektir, çünlü baslangic tarihi 08.10.2010 dan büyük ve bitis tarihi 08.10.2010 dan küçük bilgi girişi yok.

Şu şekilde yazarsan daha kesin sonuc alırsın.

Kod: Tümünü seç

select * from doviz where '08.10.2010' between baslangictarih and bitistarih
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: iki tarih arası sorgu, farklı bir soru

Mesaj gönderen conari »

@emin_as Ben tarih aralığını 2008 verdi görüyorum. :shock:
2. kaydın gelmesi lazım.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: iki tarih arası sorgu, farklı bir soru

Mesaj gönderen emin_as »

Doğru, ben yanlışlıkla 2010 görmüşüm.
Gk_imptob
Üye
Mesajlar: 84
Kayıt: 01 Kas 2005 12:34

Re: iki tarih arası sorgu, farklı bir soru

Mesaj gönderen Gk_imptob »

Değerli emin_as aşşağıda verdiğiniz komut satırı tam istediğim gibi çalıştı. :bravo: Tüm yardımı geçen arkadaşlara çok teşekkür ederim.

saygılarımla.
emin_as yazdı:
Şu şekilde yazarsan daha kesin sonuc alırsın.

Kod: Tümünü seç

select * from doviz where '08.10.2010' between baslangictarih and bitistarih
Cevapla