Tarih ve Saat aralığı sorgulama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
harun1974
Üye
Mesajlar: 6
Kayıt: 11 Eki 2015 11:27

Tarih ve Saat aralığı sorgulama

Mesaj gönderen harun1974 » 18 Nis 2019 12: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.

mkysoft
Kıdemli Üye
Mesajlar: 3006
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: Tarih ve Saat aralığı sorgulama

Mesaj gönderen mkysoft » 18 Nis 2019 05:24

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'

speed60
Üye
Mesajlar: 50
Kayıt: 07 Eki 2011 07:07

Re: Tarih ve Saat aralığı sorgulama

Mesaj gönderen speed60 » 21 Nis 2019 10:24

18 mart 2019 saat 22.00 den 19 mart 2019 saat 06:00 yı sorguluyorsan tarih değerini yanlış veriyorsun gibi

ertank
Üye
Mesajlar: 1237
Kayıt: 11 Eyl 2015 11:45

Re: Tarih ve Saat aralığı sorgulama

Mesaj gönderen ertank » 09 Haz 2019 11:15

harun1974 yazdı:
18 Nis 2019 12: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.
Merhaba,

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')

yusuf simsek
Üye
Mesajlar: 309
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Tarih ve Saat aralığı sorgulama

Mesaj gönderen yusuf simsek » 05 Tem 2019 08:08

@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

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'
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com

Cevapla