• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Datum BETWEEN funktioniert nicht

_R_A_L_F_

Mitglied
Hallo,

ich möchte gerne eine Abfrage über einen Zeitbereich in einer Datenbank machen.

Die Spalte ist als datetime definiert und der enthaltene Zeitstempel ist z.B. 2015-01-01 00:00:01

Meine SQL String sieht so aus:

PHP:
 $sql = 'Select *from tabelle WHERE datum BETWEEN "2015-01-01 00:00:00" AND "2015-01-02 00:00:00"';

Es kommt jedes mal ein Syntax Fehler obwohl ich nicht wüsste was daran falsch sein sollte?
 
Werbung:
Ich würde dir empfehlen den Eintrag bevor du ihn in die Datenbank einspeicherst in einen timestamp konvertierst.
Das machst du folgendermaßen:
Code:
$timestamp = strtotime('01-01-2015');
Der daraus folgende wert sind die Anzahl der Sekunden die seit dem 01. Januar 1970 00:00:00 UTC vergangen sind. Dadurch kannst du deine sql abfrage folgendermaßen gestalten:
$sql = 'Select *from tabelle WHERE datum <= '.$timestamp1.' AND datum <='.$timestamp2.'';
Mehr infomrmationen zum timestamp hier.
 
Werbung:
Die Verwendung eines Zeitstempels ist hier nicht notwendig und imho auch unsauber und nicht zukunftsfähig. BETWEEN kann auch mit DATETIME umgehen, wenn man die Strings entsprechend konvertiert. Dazu bietet MySQL selbst die Funktion str_to_time an: https://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date
Beispiel:
Code:
SELECT * 
FROM tabelle 
WHERE 
 datum BETWEEN str_to_date('2015-01-01 00:00:00','%Y-%m-%d %H:%i:%s') AND str_to_date('2015-01-02 00:00:00','%Y-%m-%d %H:%i:%s');
 
Zurück
Oben