Arkadaşlar selamlar,
Daha önce burada sorduğum ve cevabını bulduğumuz bir konuda, tekrar hata yaşamaya başladım. MYSQL veitabanında olan datetime alanındaki verileri sorgularken, aşağıdaki kodu kullanıyorum
select * from tagverileri where tagadi='ALU_MUD_SAATLIK' and zaman between '2019-03-18' and '2019-04-18' AND DATE_FORMAT(zaman, '%H' ) BETWEEN '22:00:00' AND '06:00:00'
Ancak sorgu sonucu boş çıkıyor. Fakat sorgudaki saat aralığını tam tersine yaparsam
DATE_FORMAT(zaman, '%H' ) BETWEEN '06:00:00' AND '22:00:00'
bu şekilde raporlar geliyor. Fakat istediğim sonuç değil çünkü, 8 saatlik veri sorgulamam gerekirken, 16 saatlik veri sorguluyorum. Kodun doğru yazılımı konusunda yardımlarınızı rica ederim.
Tarih ve Saat aralığı sorgulama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Tarih ve Saat aralığı sorgulama
eğer zaman alanınız timestamp formatındaysa tam arama yapmalısınız.
Kod: Tümünü seç
select * from tagverileri where tagadi='ALU_MUD_SAATLIK' and zaman between '2019-03-18 22:00:00' and '2019-04-18 06:00:00'
Re: Tarih ve Saat aralığı sorgulama
18 mart 2019 saat 22.00 den 19 mart 2019 saat 06:00 yı sorguluyorsan tarih değerini yanlış veriyorsun gibi
Re: Tarih ve Saat aralığı sorgulama
Merhaba,harun1974 yazdı: ↑18 Nis 2019 01:32 Arkadaşlar selamlar,
Daha önce burada sorduğum ve cevabını bulduğumuz bir konuda, tekrar hata yaşamaya başladım. MYSQL veitabanında olan datetime alanındaki verileri sorgularken, aşağıdaki kodu kullanıyorum
select * from tagverileri where tagadi='ALU_MUD_SAATLIK' and zaman between '2019-03-18' and '2019-04-18' AND DATE_FORMAT(zaman, '%H' ) BETWEEN '22:00:00' AND '06:00:00'
Ancak sorgu sonucu boş çıkıyor. Fakat sorgudaki saat aralığını tam tersine yaparsam
DATE_FORMAT(zaman, '%H' ) BETWEEN '06:00:00' AND '22:00:00'
bu şekilde raporlar geliyor. Fakat istediğim sonuç değil çünkü, 8 saatlik veri sorgulamam gerekirken, 16 saatlik veri sorguluyorum. Kodun doğru yazılımı konusunda yardımlarınızı rica ederim.
Bu gibi sorgulamalar için tarih ve saat değerlerini birlikte ">=" ve "<=" şeklinde sorgulama yapmanızı tavsiye ederim. Database bağımsız olarak her zaman doğru sonuç alırsınız.
Kod: Tümünü seç
select * from tagverileri where tagadi='ALU_MUD_SAATLIK' and (zaman >= '2019-03-18 22:00:00' and zaman <= '2019-04-19 06:00:00')
-
- Üye
- Mesajlar: 330
- Kayıt: 09 Mar 2004 11:18
- Konum: Konya
- İletişim:
Re: Tarih ve Saat aralığı sorgulama
@mkysoft dediği gibi, Tam değerde arama yapmalısınız.
Eğer Tarih ve Saat alanlarını ayrı ayrı tutuyorsanız tarih ve saati birleştirip TEK ALAN olarak sorgulama yapmalısınız
Eğer Tarih ve Saat alanlarını ayrı ayrı tutuyorsanız tarih ve saati birleştirip TEK ALAN olarak sorgulama yapmalısınız
Kod: Tümünü seç
select * from tagverileri where tagadi='ALU_MUD_SAATLIK' and
zaman between '2019-03-18 22:00:00' and '2019-04-18 06:00:00'