2016-04-12 11 views
0

Ich habe das Forum durchsucht, aber diese Abfrage funktioniert nicht. Es gibt ein leeres Array zurück. Wenn ich die WHERE Teile entfernen, es funktioniert gut ...Codeigniter date comparison

Das mit $this->db->last_query() der Ausgang ist:

SELECT `buchungen`.*, `rechnungen`.`sent_count`, `rechnungen`.`zahlungsdatum`, `rechnungen`.`last_modified` 
    FROM (`buchungen`) 
    LEFT JOIN `rechnungen` ON `rechnungen`.`buchungs_id` = `buchungen`.`id` 
    WHERE `buchungen`.`datum` >= '2016-03-13 12:00:00' 
    AND `buchungen`.`datum` <= '2016-03-13 12:00:00' 
+0

Sie sind eine Zeichenfolge zu vergleichen, die nicht größer oder kleiner sein kann, kann nur ganze Zahlen tun. Verwenden Sie die Funktion 'DATE ('2016-03-13 12:00:00')' – Xorifelse

+0

Was ist der Datentyp des Feldes 'Datum'? – DFriend

Antwort

0

Versuchen:

SELECT `buchungen`.*, `rechnungen`.`sent_count`, `rechnungen`.`zahlungsdatum`, rechnungen.last_modified 
FROM (`buchungen`) 
LEFT JOIN `rechnungen` ON `rechnungen`.`buchungs_id` = `buchungen`.`id` 
WHERE `buchungen`.`datum` BETWEEN CAST('2016-03-13 12:00:00' AS DATETIME) 
AND CAST('2016-03-13 12:00:00' AS DATETIME) 

-Assuming Sie Speichern datum als DATETIME.

0

Versuchen Sie, diese

$this->db->query("SELECT buchungen.*, rechnungen.sent_count, rechnungen.zahlungsdatum, rechnungen.last_modified 
        FROM buchungen 
        LEFT JOIN rechnungen 
        ON rechnungen.buchungs_id = buchungen.id 
        WHERE buchungen.datum >= date('Y-m-d H:i:s', strtotime('2016-03-13 12:00:00')) 
        AND buchungen.datum <= date('Y-m-d H:i:s', strtotime('2016-03-13 12:00:00'))"); 
+0

Haben Sie das überprüft? –