Merhaba arkadaşlar bir tablomda 2 tarih arası sorgu yaptırıyorum bazı sorgular çalışmıyor bazıları çalışıyor date sutunu datetime formatında kaydediliyor ve 2020-08-07 bu tarihe kayıtlı 4 kayıt var bazılarında veri yok diyor anlamadım hiç birşey fikri olan var mı aşşağıya sorguları yazıyorum çalışan ve çalışmayan sorguları fikri olan yazsın
SELECT * FROM `tablomr` WHERE date between '2020-08-01' and '2020-08-07' and durums = '1' = bu sorgu çalışmıyor
SELECT * FROM `tablomr` WHERE date between '2020-08-07' and '2020-08-07' and durums = '1' = bu sorgu da çalışmıyor
SELECT * FROM `tablomr` WHERE date between '2020-08-07' and '2020-08-08' and durums = '1' = bu sorgu çalışıyor
SELECT * FROM `tablomr` WHERE date between '2020-08-01' and '2020-08-08' and durums = '1' = bu sorgu da çalışıyor
iki tarih arası sorgu
5
●286
- 07-08-2020, 23:11:28Normalde between <= ve => koşullarını uyguluyor yani normalde 4 sorgunun da çalışması lazım. date verisi field de 2020-08-07 00:00:00 bu formatta kaydediliyor olmalı.
Aşağıdaki sql kodlar ile oluşturduğum tabloda 4 sorgu da MySql 5.7.24 sürümünde sorunsuz çalıştı.
CREATE TABLE `tablomr` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `date` datetime DEFAULT NULL, `durums` tinyint(4) DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
- 07-08-2020, 23:19:16Hocam bende sizin gibi düşünüyorum ve çalışması lazım ama çalışmıyor mysql sürümüm 5.7.31 hiçbir şey anlamadım date alanının tarihlerini yazayım sizde bir deneyin denedim yazdığım 2 sorguda veri yok diyor yani 0 değeri dönüyor diğer 2 sorguda veriler geliyor
ilk 2 sorgunun sonucu :
MySQL boş bir sonuç kümesi döndürdü (yani sıfır satır). (Sorgu 0.1789 saniye sürdü.)
kayıt date tarihleri:
2020-08-07 11:05:57,
2020-08-07 11:06:57,
2020-08-07 12:50:51
2020-08-07 13:56:41 - 07-08-2020, 23:37:17Coder63 hocam sorunu çözdüm php sürümüm php 7.2 büyük ihtimalle mysql sürüm ile alakalı diye düşünüyorum. Bu sorunla karşılayan diğer arkadaşlar için cevabı da yazayım kalsın ihtiyaç duyanlar için sorgularınızı şu şekilde değiştirin benim sorgumda where den sonra date(date) ekledim çalıştı yani date(buraya sütun ismi gelecek) bu arada coder63 ilgin için tşkler
SELECT * FROM `tablomr` WHERE date(date) BETWEEN '2020-08-01' AND '2020-08-07' AND durums = '1'
SELECT * FROM `tablomr` WHERE date(date) BETWEEN '2020-08-07' AND '2020-08-07' AND durums = '1'