ADO query ile parametreli tarih sorgusu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
must68
Üye
Mesajlar: 21
Kayıt: 14 Tem 2003 12:28

ADO query ile parametreli tarih sorgusu

Mesaj gönderen must68 »

Kod: Tümünü seç

select PR_ID,R_TIMESTAMP from GRS1000.MEASDATA
  where  ((R_TIMESTAMP) > (:Param1)) 
sorun çıkınca her yere parantez koydum.

Param1 parametresi ile girdigim tarih ve saatten sonraki kayıtları almak istiyorum. Ama sorgu sonucu saat kismi 00:00:00 mış gibi geliyor.

Database DB2, Query ADOQuery.
Param1 parametresinde
DataType=ftDateTime
Value=18.02.2004 10:00:00
Type=Date (burada DateTime seçenegi olmadığından Date seçili)

Kod: Tümünü seç

  DM.ADOQuery1.Close;
  DM.ADOQuery1.Parameters[0].Value:=DateTimeToStr(LastSqlTime);
  DM.ADOQuery1.Open;
  DM.ADOQuery1.First;
LastSqlTime'in değerini DateTimeToStr(LastSqlTime) ile yazdiriyorum. değeri '18.02.2004 10:15:37'.
Buna rağmen gelen ilk kayıtın tarih(R_TIMESTAMP) kolonunda 18.02.2004 00:54:07 var.
LastSqlTime'in değerini '17.02.2004 10:15:37' yapınca sonuclar 17.02.2004 00:00:00 'dan itibaren geliyor.

Tarih değerini parametrik olarak girmek zorundayım. başka bir yönetmi varmıdır?


Not:
Programı çalıştırmadan form üzerindeki ADOQuery1.Active=True yapıp, sonucu bir DBgrid'de gösterdiğimde doğru calıştıgını gördüm. Ama kurcalayınca o da calışmıyor.

Not2:
Yanlışlıkla Programlama bölümüne yazmışım. Özür dilerim. Aslında bu konuya dikkat eden biriyim. Adminler Veritabanı bölümüne taşırsa sevinirim.
Kullanıcı avatarı
athena
Üye
Mesajlar: 92
Kayıt: 20 Eyl 2003 06:32
Konum: Antalya
İletişim:

Mesaj gönderen athena »

'select * from table where table_tar > "'+DateToStr(DateEdit1.Date)+'" ';

seklinde sorguyu elle duzenleyebilirsiniz.
"Millete efendilik olmaz,hizmet olur,
kim Millete hizmet ederse,
o milletin efendisidir."
must68
Üye
Mesajlar: 21
Kayıt: 14 Tem 2003 12:28

Mesaj gönderen must68 »

Sanırım tam anlatamadım.sormak istediğim şuydu:

tarih ve saat formatında sorgulamak istememe rağmen sonuçlar sadece Gun-Ay-Yıl'a göre dönüyor. verilen saat bilgisini dikkate almiyor.
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

Sunu Denedinmi

(sorgunun sonuna ekle)

Kod: Tümünü seç

ORDER BY   "AlanAdi"  ASC
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

dikkate almaması için bir sebep göremiyorum. Recep bey'in dediği gibi manuel olarak SQL cümlesini oluşturun ve açın. Açmadan önce oluşan SQL cümlesini görmek için :

DM.ADOQuery1.Open;

satırından önce

ShowMessage(DM.ADOQuery1.SQL.Text);

satırını ekleyerek oluşan SQL'i görebilirsiniz. SQL cümlelerinde yanlışın nerde olduğunu tespit için ben hep bu yöntemi kullanırım.

NOT : Soru zaten programlama bölümüyle alakalı. Direk veritabanı ile alakalı soruları Veritabanı ve SQL'e, Delphi tarafındaki Table,Query,Datset vs. soruları Programlama forumuna soruluyor.

Kolay gelsin.
must68
Üye
Mesajlar: 21
Kayıt: 14 Tem 2003 12:28

Mesaj gönderen must68 »

R_TIMESTAMP > tarih_saat
koşulunu Query'nin Filter özelliğine yazınca sorunsuz çalışıyor.

Yazdığım program DB2 database'inde bulunan bilgileri 5 dakikada bir alıp işleyerek Oracle'a aktarıyor.
Benzer bir sorgu Oracle'da sorunsuz çalışıyor.

Ben sorunumu hallettim. Ama DB2'nun tarihle ilgili bir sorunu var sanırım.
En azından yukarıda yazdığım yontemle başarısız oldum.
Cevapla