(19-04-2019, Saat: 23:51)mcuyan Adlı Kullanıcıdan Alıntı: 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ı: (19-04-2019, Saat: 14:39)esistem Adlı Kullanıcıdan Alıntı: 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ı
Yazılımcı, kahveyi koda çeviren bir organizmadır.