• 19-01-2024, 15:52:38
    #1

    Böyle bir veritabanım var

    $hazirlaniyor = $db->query("SELECT *, SUM(tutar) as toplam FROM odemeler
                                            WHERE 'saat' BETWEEN '$baslangic' AND '$bitis' AND tarih BETWEEN '$bugun' AND '$yarin' AND odeme_tip=1  GROUP BY grup_id", PDO::FETCH_ASSOC);
                                          foreach($hazirlaniyor as $tablo){ $toplam=$toplam+$tablo['toplam']; }
    böyle bir sorgum var

    istediğim belirlenen saatler arasında ki verilerin toplanması nasıl yapabilirim?
  • 19-01-2024, 15:56:35
    #2
    muhtemelen formatlar uygun olmadığı için
    tarih saat'i birleştirip tarih formatını verip, datetime objesine çevirin (cast), onun üzerinde between kullanın
  • 19-01-2024, 17:15:07
    #3
    $hazirlaniyor = $db->query("SELECT *, SUM(tutar) as toplam FROM odemeler
                               WHERE CONCAT(tarih, ' ', saat) BETWEEN '$baslangic' AND '$bitis' AND odeme_tip = 1  
                               GROUP BY grup_id", PDO::FETCH_ASSOC);
  • 19-01-2024, 17:40:13
    #4
    Saati hesaba katmasan da bu tarih kısmına kayıt ettiğin veri tipiyle BETWEEN komutu çalışmaz sanırım varchar kaydediyorsun
    DATETIME olarak değiştirip kayıt ve sorgulama işlemlerini o şekilde yapın.