Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ]Tarih ve Saat aralığı sorgulama
#21
(19-04-2019, Saat: 13:02)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.o zaman tarih ve saat aralığını seçtirip her gün için dongu kurup sql kodu üreticeksiniz.
İki tel saçım vardı o da gidecek sanırım.

Bu arada dünden beridir çok uğraştınız hocam benimle. Hakkınızı helal edin. Çok sağolun.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#22
SELECT * from tagverileri where tagadi='ALU_MUD_SAATLIK' and
(
(
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR)
) 
OR 
(
zaman>=DATE_ADD('2019-03-19 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-19 22:00:00', INTERVAL '0 8' DAY_HOUR)
)
OR 
(
zaman>=DATE_ADD('2019-03-20 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-20 22:00:00', INTERVAL '0 8' DAY_HOUR)
)
)
gibi her günün 8 saatini sorgulayabilirsiniz.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#23
(19-04-2019, Saat: 13:14)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
SELECT * from tagverileri where tagadi='ALU_MUD_SAATLIK' and
(
(
zaman>=DATE_ADD('2019-03-18 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-18 22:00:00', INTERVAL '0 8' DAY_HOUR)
) 
OR 
(
zaman>=DATE_ADD('2019-03-19 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-19 22:00:00', INTERVAL '0 8' DAY_HOUR)
)
OR 
(
zaman>=DATE_ADD('2019-03-20 21:59:59', INTERVAL '0:1' MINUTE_SECOND)
and
zaman<=DATE_ADD('2019-03-20 22:00:00', INTERVAL '0 8' DAY_HOUR)
)
)
gibi her günün 8 saatini sorgulayabilirsiniz.
çok sağolun.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#24
sanırım aşağıdaki şekilde tek sorguda sorununu çözebilirsin. MYSQL de denedim bende sorunsuz çalıştı.
select 
DATE( ZAMAN ) AS TARIH, 
TIME( ZAMAN ) AS SAAT, 
DEGER // okunan değer
FROM test 
WHERE DATE( ZAMAN ) >=  '2019-04-18' AND DATE( ZAMAN ) <=  '2019-04-19' // once tarih aralığı DATE() ile tarihi alıyoruz alandan
AND ( // sonrada zaman damgaları
zaman >= CONCAT( DATE( ZAMAN ) ,  ' 09:00:00' )
// alandan tarihi çekip yanına saati ekliyoruz concat ile
AND zaman <= DATE_ADD( CONCAT( DATE( ZAMAN ) ,  ' 09:00:00' ) , INTERVAL  '0 2' DAY_HOUR )
// yine alandan tarihi çekip yanına saati 2 saat arttırarak ekliyoruz concat ile
)

gerçi buda sorun çıkartır, son tarihte saat 24 ten sonrası problem olmasın istenirse kodun ilgili kısmı aşağıdaki gibi değiştirilirse net sonuç verecektir.

WHERE DATE( ZAMAN ) >= '2019-04-18' AND
zaman <= DATE_ADD( CONCAT( '2019-04-19 22:00:00' ) , INTERVAL '0 5' DAY_HOUR )

böylece ayın 18 i ve 19 unun 22:00 den sonraki 5 saatide ana sorguya eklenip son değerin;

2019-04-20 02:00:00 olarak görülmesi sağlanmış olur
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#25
(19-04-2019, Saat: 14:39)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.sanırım aşağıdaki şekilde tek sorguda sorununu çözebilirsin. MYSQL de denedim bende sorunsuz çalıştı.
select 
DATE( ZAMAN ) AS TARIH, 
TIME( ZAMAN ) AS SAAT, 
DEGER // okunan değer
FROM test 
WHERE DATE( ZAMAN ) >=  '2019-04-18' AND DATE( ZAMAN ) <=  '2019-04-19' // once tarih aralığı DATE() ile tarihi alıyoruz alandan
AND ( // sonrada zaman damgaları
zaman >= CONCAT( DATE( ZAMAN ) ,  ' 09:00:00' )
// alandan tarihi çekip yanına saati ekliyoruz concat ile
AND zaman <= DATE_ADD( CONCAT( DATE( ZAMAN ) ,  ' 09:00:00' ) , INTERVAL  '0 2' DAY_HOUR )
// yine alandan tarihi çekip yanına saati 2 saat arttırarak ekliyoruz concat ile
)

gerçi buda sorun çıkartır, son tarihte saat 24 ten sonrası problem olmasın istenirse kodun ilgili kısmı aşağıdaki gibi değiştirilirse net sonuç verecektir.

WHERE DATE( ZAMAN ) >=  '2019-04-18' AND
zaman <= DATE_ADD( CONCAT( '2019-04-19 22:00:00' ) , INTERVAL  '0 5' DAY_HOUR )

böylece ayın 18 i ve 19 unun 22:00 den sonraki 5 saatide ana sorguya eklenip son değerin;

2019-04-20 02:00:00 olarak görülmesi sağlanmış olur
hemen deniyorum. Çok teşekkürler.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#26
Hocam mysql sunucu versiyonunuzda birşey olabilir mi?..
Benim size yolladığım kod ile benim sunucumda sorunsuz tarih ve saate göre data getirebiliyiroum..

Bendeki versiyon: 5.7.21

Yani zaten Alanınız datetime türünde bir alan ise Mysql datetime türünü algılar.. Tarih küük büyük yada saat vs gibi şeyleri where konumundaki kriterinize göre sorguyu çalıştırır.. Kısacası ek bir convert vs ye ihtiyac duymaz.

select * from tagverileri where tagadi='ALU_MUD_SAATLIK' and zaman between '2019-03-18 22:00:00' and '2019-04-18 06:00:00'
Çalışmaması için hiç bir gerekçe görmüyorum.  Kodu yanlış yazıyor olabilir misiniz?


Ek Dosyalar Resimler
   
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#27
(19-04-2019, Saat: 23:51)mcuyan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Hocam mysql sunucu versiyonunuzda birşey olabilir mi?..
Benim size yolladığım kod ile benim sunucumda sorunsuz tarih ve saate göre data getirebiliyiroum..

Bendeki versiyon: 5.7.21

Yani zaten Alanınız datetime türünde bir alan ise Mysql datetime türünü algılar.. Tarih küük büyük yada saat vs gibi şeyleri where konumundaki kriterinize göre sorguyu çalıştırır.. Kısacası ek bir convert vs ye ihtiyac duymaz.

select * from tagverileri where tagadi='ALU_MUD_SAATLIK' and zaman between '2019-03-18 22:00:00' and '2019-04-18 06:00:00'
Çalışmaması için hiç bir gerekçe görmüyorum.  Kodu yanlış yazıyor olabilir misiniz?

sorgu sonucunuz aşağıda
70810 ALU_MUD_SAATLIK 2019-03-18 22:00:02 6800
70875 ALU_MUD_SAATLIK 2019-03-18 23:00:02 6800
70940 ALU_MUD_SAATLIK 2019-03-19 00:00:02 6800
71005 ALU_MUD_SAATLIK 2019-03-19 01:00:02 6800
71070 ALU_MUD_SAATLIK 2019-03-19 02:00:02 6800
71135 ALU_MUD_SAATLIK 2019-03-19 03:00:02 6800
71200 ALU_MUD_SAATLIK 2019-03-19 04:00:02 6800
71265 ALU_MUD_SAATLIK 2019-03-19 05:00:02 6800
71330 ALU_MUD_SAATLIK 2019-03-19 06:00:02 6800
71395 ALU_MUD_SAATLIK 2019-03-19 07:00:02 6800
71460 ALU_MUD_SAATLIK 2019-03-19 08:00:02 6800
71525 ALU_MUD_SAATLIK 2019-03-19 09:00:02 6800
71590 ALU_MUD_SAATLIK 2019-03-19 10:00:02 6800
71655 ALU_MUD_SAATLIK 2019-03-19 11:00:02 6800
71720 ALU_MUD_SAATLIK 2019-03-19 12:00:02 6800
71785 ALU_MUD_SAATLIK 2019-03-19 13:00:02 6800

Hocam,

bakın m_id 33 nolu satırınızdaki saat 20:42
sorgu saatleriniz aralığı ise saat  00:28 ile 00:35
20:42 saatini neden listeye alıyorsunuz?
Benim istediğim, hergünün saat 00:28 ile 00:35 aralığını sorgulamanız.

sorgıunuzu;

select m_id, uye_tar from mobil_lisanslar where uye_tar between '2018-12-23 22:00:00' and 2019-01-23 11:37:00' şeklinde sorgular mısınız? Gece saat 22:00cile sabah 11:37 aralığının haricinde bir değer geliyor mu size?

(19-04-2019, Saat: 15:16)wiseman Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(19-04-2019, Saat: 14:39)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.sanırım aşağıdaki şekilde tek sorguda sorununu çözebilirsin. MYSQL de denedim bende sorunsuz çalıştı.
select 
DATE( ZAMAN ) AS TARIH, 
TIME( ZAMAN ) AS SAAT, 
DEGER // okunan değer
FROM test 
WHERE DATE( ZAMAN ) >=  '2019-04-18' AND DATE( ZAMAN ) <=  '2019-04-19' // once tarih aralığı DATE() ile tarihi alıyoruz alandan
AND ( // sonrada zaman damgaları
zaman >= CONCAT( DATE( ZAMAN ) ,  ' 09:00:00' )
// alandan tarihi çekip yanına saati ekliyoruz concat ile
AND zaman <= DATE_ADD( CONCAT( DATE( ZAMAN ) ,  ' 09:00:00' ) , INTERVAL  '0 2' DAY_HOUR )
// yine alandan tarihi çekip yanına saati 2 saat arttırarak ekliyoruz concat ile
)

gerçi buda sorun çıkartır, son tarihte saat 24 ten sonrası problem olmasın istenirse kodun ilgili kısmı aşağıdaki gibi değiştirilirse net sonuç verecektir.

WHERE DATE( ZAMAN ) >=  '2019-04-18' AND
zaman <= DATE_ADD( CONCAT( '2019-04-19 22:00:00' ) , INTERVAL  '0 5' DAY_HOUR )

böylece ayın 18 i ve 19 unun 22:00 den sonraki 5 saatide ana sorguya eklenip son değerin;

2019-04-20 02:00:00 olarak görülmesi sağlanmış olur
hemen deniyorum. Çok teşekkürler.
Yok hocam yine olmadı Sad
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla
#28
Hocam dedğiniz yapabiliyorum. Yani o gün içinde x saat ile y saat arasını.. Cidden neresinin çalışmadığını anlamadım..


Ek Dosyalar Resimler
   
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#29
Cihan bey merhaba,
Sorgu biraz farklı olmalı, şöyle düşünün, Önümüzdeki 10 günün, sadece sabah 09:00 ile 12:00 saatleri arası tek sorguda çalışmalı.
select 
DATE( ZAMAN ) AS TARIH, 
TIME( ZAMAN ) AS SAAT, 
DEGER // okunan değer
FROM test 
WHERE DATE( ZAMAN ) >=  '2019-04-18' AND
ZAMAN <= DATE ( DATE_ADD( CONCAT( '2019-04-19 22:00:00' ) , INTERVAL  '0 5' DAY_HOUR ) )
AND (
zaman >= CONCAT( DATE( ZAMAN ) ,  ' 22:00:00' )
AND zaman <= DATE_ADD( CONCAT( DATE( ZAMAN ) ,  ' 22:00:00' ) , INTERVAL  '0 5' DAY_HOUR )
)

yukarıdaki sorgu;
18.04.2019 - 19.04.2019 tarihleri arasındaki, 22:00 ile 03:00 saatleri arasındaki verileri getirmeli
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#30
(21-04-2019, Saat: 21:56)mcuyan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Hocam dedğiniz yapabiliyorum. Yani o gün içinde x saat ile y saat arasını.. Cidden neresinin çalışmadığını anlamadım..

Selamlar
@esistem  üstadığımızın dediği gibi,  saat aralığı 01:00 - 03:00 olursa zaten yazdığınız kod doğru çalışıyor sorun yok.
Sorun bir önceki akşamın saat 21:00 - ertesi gün 03:00 arasındaki sorguyu aldığınızda çıkıyor ortaya.

verilen kısıtta gün değişimi olduğu için, raporu alamıyorsunuz. Keşke bana bir bağlanma şansınız olsa da ben size sorunu direkt gösterebilsem hocam. Sorunun ne olduğunu görebileceksiniz.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [ÇÖZÜLDÜ] dbdatetine wiseman 4 109 15-11-2019, Saat: 18:26
Son Yorum: wiseman
  SQl tarih Sorunu Bay_Y 7 236 11-11-2019, Saat: 09:06
Son Yorum: Bay_Y
  ÇÖZÜLDÜ-dikdörtgen alanın resim pixel renk değerlerini okuma sadikacar60 2 157 29-10-2019, Saat: 14:48
Son Yorum: sadikacar60
  İlişkili Combobox (Çözüldü) bünyamin68 11 416 23-10-2019, Saat: 11:02
Son Yorum: bünyamin68
  [ÇÖZÜLDÜ] Rapor Baskısında 0 değerleri yazılmasın wiseman 2 151 01-10-2019, Saat: 18:04
Son Yorum: wiseman



Konuyu Okuyanlar: 1 Ziyaretçi