Nur die ersten x Zeichen der Zelle für WHERE verwenden

GalaxyWarrior

Erfahrenes Mitglied
Hi leute, ich weiß nicht ob ich in der Überschrift erklären konnte was ich will ;)
Ich habe das Problem, das ich in einer Datenbank suchen will, nur die Kriterien nachdenen ich suchen will sind Daten, und diese sind so in der DB:
20041225133023 oder zur besseren Erkennung:
2004-12-25 13:20:23
Für meine suche ist nur das Datum wichtig. Ich möchte dann in der MySQL Abfrage schreben:
WHERE [Die ersten 8 Zeichen von Zelle XY] = $jahr$monat$tag (20041225 z.B.)
aber wie mache ich das, das er nur die ersten , in diesem Fall 8, Zeichen vergleicht?
Gruß GalaxyWarrior
 
Mit diesen Funktionen kann ich doch nur das datum ausgeben lassen, das habe ich ja, aber mein Problem ist, das er nur die ersten 8 Zeichen mit dem WHERE Befehl abgleichen soll, weil sonst müsste ich bei der suche ja nach dem genauen datum suchen. Oder habe ich da was übersehen?
Gruß GalaxyWarrior
 
Anscheinend gibt es keine Funktion, die das Datum eines DATETIME extrahiert, aber folgendes funktioniert:
Code:
SELECT `date` FROM `tabelle` WHERE DATE_FORMAT(`date`, '%Y-%m-%d') = '2004-12-25'
 
Also irgendwie bekomm ich das net so hin ^^.
Das hier ist die Zeile:
PHP:
$sql="SELECT * FROM amx_playtime WHERE DATE_FORMAT(date, %Y-%m-%d) = $wheredate ORDER BY $order $sort LIMIT $start,$proseite ";

Wobei ich nicht weusste ob ich bei DATE_FORMAT den Namen der Zelle in meiner DB angeben muss, aber das funktionierte auch nicht.
$wheredate ist einfach das zusammenschreiben von $jahr-$monat-$tag. das echo bei mir wäre 2004-12-25

Gruß GalaxyWarrior
 
Der Fehler wenn ich für DATE_FORMAT den namen der Spalte eintrage ist :
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(date, %Y-%m-%d) = 2004-12-25 ORDER BY game_time DESC LIMIT 0,5

Und der fehler wenn ich DATE_FORMAT lasse:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '%Y-%m-%d) = 2004-12-25 ORDER BY game_time DESC LIMIT 0,50' at l
 
Zurück