none
postgresql 2 tarih arası sorgu hatası RRS feed

  • Soru

  • postgresql de timestamp without time zone tarih alanından iki tarih aralığında şu kodlarla sorgulama yapmaya çalışıyorum ama hata veriyor çözümü nedir bilen arkadaşlardan yardım bekliyorum timestamp veri türünde sorgu nasıl yapılıyor.

     cmd.CommandText = " SELECT timestamp FROM musteri WHERE timestamp>=@startdate and timestamp>=@enddate" +
                                          " ORDER BY timestamp ASC ";
                cmd.Parameters.Add("@startdate", NpgSqlDbType.Timestamp).Value = dtpStartDate.Value;
                cmd.Parameters.Add("@enddate", NpgqlDbType.Timestamp).Value = dtpEndDate.Value.AddDays(1);

    datetimepicker ile tablodaki timestamp(timestamp without time zone) veri tipindeki alandan iki tarih arası veri çekmeye çalışıyorum ama verileri getirmiyor.

    3 Kasım 2020 Salı 15:19

Yanıtlar

  • sorgunuzdaki SELECT ifadesinden sonraki kodları tekrar gözden geçirin bu yukarıdaki kodda tablo adı "deneme" örnek tablonun ismi "denemem" birde alan adlarını kontrol edin SELECT ifadesinden sonra yukarıdaki kodlar gibi alan adlarını yazarak sorgu yapıyorsanız alan adlarını ve aradaki (,) virgülleri kontrol edin büyük ihtimalle orada sorun vardır yoksa sadece bu yukarıdaki SELECT ifadesiyle sorgu yapıyorsanız WHERE ifadesinden sonra da

    >=@enddate yanlış

    <=@enddate doğru

    yanlış yazılmış <=enddate şeklinde düzelttiğinizde çalışır dediğim gibi tablo adı ve <=@enddate ifadesi yanlış değiştirirseniz sorgu sonucunun gelmesi lazım.
    • Düzenleyen yunmahfur 4 Kasım 2020 Çarşamba 09:28
    • Yanıt Olarak İşaretleyen coşkun_akın 4 Kasım 2020 Çarşamba 09:40
    4 Kasım 2020 Çarşamba 09:19

Tüm Yanıtlar

  • O alana timestamp adini vermek pek olmamis, baslibasina sorun nedeni ama yine de calismasi lazim. Ne hata veriyor tam olarak? Ornek tablo ve verileriniz nasil?


    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    3 Kasım 2020 Salı 19:36
    Yanıtlayıcı
  • ben timestamp adını örnek olsun diye verdim normalde tablodaki alanın ismi kayittarihi 

    tablom


    3 Kasım 2020 Salı 20:33
  • bunlarda örnek verilerveriler
    3 Kasım 2020 Salı 20:33
  • ben burada kayittarihi alanından verileri çekmeye çalışırken hata veriyor dogumtarihi alanından normal sorgu yapıyorum kullandığım veritabanı postgresql
    3 Kasım 2020 Salı 20:34
  • hata

    bu hatayı  alıyorum

    3 Kasım 2020 Salı 20:37
  • cmd.CommandText = " SELECT kayittarihi FROM deneme WHERE kayittarihi >=@startdate and kayittarihi >=@enddate" +
                                          " ORDER BY kayittarihi ASC ";
                cmd.Parameters.Add("@startdate", NpgSqlDbType.Timestamp).Value = dtpStartDate.Value;
                cmd.Parameters.Add("@enddate", NpgqlDbType.Timestamp).Value = dtpEndDate.Value.AddDays(1);
    normal kodlarım bu şekilde ben yukarıdaki kodları anlaşılsın diye örnek olarak yazmıştım
    3 Kasım 2020 Salı 20:44
  • sorgunuzdaki SELECT ifadesinden sonraki kodları tekrar gözden geçirin bu yukarıdaki kodda tablo adı "deneme" örnek tablonun ismi "denemem" birde alan adlarını kontrol edin SELECT ifadesinden sonra yukarıdaki kodlar gibi alan adlarını yazarak sorgu yapıyorsanız alan adlarını ve aradaki (,) virgülleri kontrol edin büyük ihtimalle orada sorun vardır yoksa sadece bu yukarıdaki SELECT ifadesiyle sorgu yapıyorsanız WHERE ifadesinden sonra da

    >=@enddate yanlış

    <=@enddate doğru

    yanlış yazılmış <=enddate şeklinde düzelttiğinizde çalışır dediğim gibi tablo adı ve <=@enddate ifadesi yanlış değiştirirseniz sorgu sonucunun gelmesi lazım.
    • Düzenleyen yunmahfur 4 Kasım 2020 Çarşamba 09:28
    • Yanıt Olarak İşaretleyen coşkun_akın 4 Kasım 2020 Çarşamba 09:40
    4 Kasım 2020 Çarşamba 09:19
  • Yukarida verdikleriniz kod degil, resim. Resmin bir faydasi yok.

    Kodunuzda mantik hatasi disinda hata varmis gibi gozukmuyor. Almak istedikleriniz (dtpStartDate.Value ve dtpEndDate.Value.AddDays(1)'den hangisi buyuk ise) kayittarihi o ve sonrasi olanlar ise dogru.

    Not: Bu arada kodlarinizin o olduguna inanmiyorum. O kod derleme sirasinda son satirda hata verir. Dogru kodunuzu paylasirsaniz hatayi gorme sansimiz var.



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.




    4 Kasım 2020 Çarşamba 09:34
    Yanıtlayıcı
  • evet dediğiniz gibi mantık hatası ifadeleri yanlış yazdığımdan olmuş tablo adı ve <=@enddate ifadesini tekrar kontrol edip düzelttiğimde kodum çalıştı ilgilenenlere teşekkürler.
    4 Kasım 2020 Çarşamba 09:40
  • evet dediğiniz gibi mantık hatası ifadeleri yanlış yazdığımdan olmuş tablo adı ve <=@enddate ifadesini tekrar kontrol edip düzelttiğimde kodum çalıştı ilgilenenlere teşekkürler.

    Bahsettiginiz hatayla onun ilgisi yok. O bir mantik hatasi ve yukarida belirttiginiz hatayi vermez.

    Kod da zaten sizin verdiginiz kod degil, o derlenmez.

    Arada hatali olan bir yazimi da duzeltmis olmalisiniz.



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    4 Kasım 2020 Çarşamba 09:56
    Yanıtlayıcı
  • evet dediğiniz gibi mantık hatası ifadeleri yanlış yazdığımdan olmuş tablo adı ve <=@enddate ifadesini tekrar kontrol edip düzelttiğimde kodum çalıştı ilgilenenlere teşekkürler.

    Bahsettiginiz hatayla onun ilgisi yok. O bir mantik hatasi ve yukarida belirttiginiz hatayi vermez.

    Kod da zaten sizin verdiginiz kod degil, o derlenmez.

    Arada hatali olan bir yazimi da duzeltmis olmalisiniz.



    Blog
    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Not: Temelin geri zekali arkadasi Idris bu mesaja da atlayip ne kadar aptal oldugunu bir kez daha belgeleyebilir. Kendisinin tek marifeti beni takip edip, neden her soruya cevap verdigimi, yardim etmeye calistigimi sorgulamaktir. Bu beyinsiz zavalliya, aptal oldugunu hatirlatmayi unutmayiniz.

    ben FROM dan sonra sadece <=enddate şeklinde düzelttim SELECT ten sonrada tablo adı ile alanlarım olan (id,ad,soyad,dogumtarihikayittarihi) şeklindeydi (id,ad,soyad,dogumtarihi,kayittarihi) şeklinde düzenledim sorguyu getirdi başka bir şeyde yapmadım şu anda problem yok çalışıyor yani çalışan kodum şu şekilde

    cmd.CommandText = " SELECT id,ad,soyad,dogumtarihi,kayittarihi FROM denemem WHERE kayittarihi >=@startdate and kayittarihi <=@enddate" +
                                          " ORDER BY kayittarihi ASC ";
                cmd.Parameters.Add("@startdate", NpgSqlDbType.Timestamp).Value = dtpStartDate.Value;
                cmd.Parameters.Add("@enddate", NpgqlDbType.Timestamp).Value = dtpEndDate.Value.AddDays(1);

    4 Kasım 2020 Çarşamba 12:01
  • Yukarıda da belirtmiştim soruyu sorarken  kendi kodlarımla değil örnek yazdığım kodlarla sordum sonrasında siz örnek veritabanı istediniz veritabanı alanlarını olduğu gibi paylaştım ve şu anda da çalışan Kodlarımı paylaştım bu şekilde çalışıyor görünüşe göre alan ve tablo adını girerken de hata yapmışım.
    4 Kasım 2020 Çarşamba 12:08