Hallo,
ich möchte aus einer Tabelle ein Ergebnis zurückgeben, welches zwischen 2 Datumsangaben liegt. Die Zeitwerte liegen als UNIX-Timestamp in der DB (es handelt sich um eine bestehende DB in der das Datumsformat so beibehalten werden soll/muss).
Folgende Abfrage (mit PHP-Rechnung) funktioniert:
$timeline = strtotime("-4 days");
$timenow = strtotime("now");
[highlight=sql]
"SELECT COUNT(id) AS count FROM ".DB_PREFIX."archive WHERE senddate BETWEEN $timeline AND $timenow AND loginname = 'XXXXXX'";
[/highlight]
Folgende MySQL-Rechnung liefert aber ein falsches Ergebnis:
"SELECT COUNT(id) AS count FROM ".DB_PREFIX."archive WHERE senddate BETWEEN 'DATE_SUB(FROM_UNIXTIME($timenow),INTERVAL 4 DAY)' AND $timenow AND loginname = 'XXXXXX'";
Das MySQL-Ergebnis ist deshalb falsch, weil es in der betreffenden Tabelle lediglich 2 Werte gibt. Einen von heute und einen von vor 4 Tagen.
Das mittels PHP 'erzeugte' Ergebnis liefert den richtigen Wert '1' zurück, MySQL aber '2'.
Woran liegt das und ist die Datumsformatierung mittels meine MySQL-Syntax so korrekt?
Gruß ttlong
ich möchte aus einer Tabelle ein Ergebnis zurückgeben, welches zwischen 2 Datumsangaben liegt. Die Zeitwerte liegen als UNIX-Timestamp in der DB (es handelt sich um eine bestehende DB in der das Datumsformat so beibehalten werden soll/muss).
Folgende Abfrage (mit PHP-Rechnung) funktioniert:
$timeline = strtotime("-4 days");
$timenow = strtotime("now");
[highlight=sql]
"SELECT COUNT(id) AS count FROM ".DB_PREFIX."archive WHERE senddate BETWEEN $timeline AND $timenow AND loginname = 'XXXXXX'";
[/highlight]
Folgende MySQL-Rechnung liefert aber ein falsches Ergebnis:
"SELECT COUNT(id) AS count FROM ".DB_PREFIX."archive WHERE senddate BETWEEN 'DATE_SUB(FROM_UNIXTIME($timenow),INTERVAL 4 DAY)' AND $timenow AND loginname = 'XXXXXX'";
Das MySQL-Ergebnis ist deshalb falsch, weil es in der betreffenden Tabelle lediglich 2 Werte gibt. Einen von heute und einen von vor 4 Tagen.
Das mittels PHP 'erzeugte' Ergebnis liefert den richtigen Wert '1' zurück, MySQL aber '2'.
Woran liegt das und ist die Datumsformatierung mittels meine MySQL-Syntax so korrekt?
Gruß ttlong
Comment