hallo liebe community
ich hab ein kleines anliegen.
also ich möchte eine mysql abfrage machen die mir nur ein bestimmtes monat rausholen.
ich habe einträge mit ID,Title,Datum das Datum ist in YYYY-MM-DD Format.
jetzt möchte ich z.b alle Einträge mit dem Monat 2008-04 rausholen aber ich weis leider nicht wie ich das mit der Query anstelle weil ich kann ja nicht einfach schreiben Where date Like 2008-04 ist.
könnt ihr mir da kurz weiterhelfen.
vielen lieben dank für eure bemühungen.
Seite 1 von 1
Mysql Abfrage
Anzeige
#3
geschrieben 27. Mai 2008 - 21:13
musst halt des datum jeweils am - aufteil und dann in 3 variablen stecken.. bzw nur den monat in eine
#4
geschrieben 27. Mai 2008 - 22:03
Ich speichere Datum und sonstige Zeitangaben immer als Timestamp in der Datenbank. Damit lässt sich dann so ziemlich alles machen.
Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
#6
geschrieben 28. Mai 2008 - 08:11
Hi,
du kannst deine WHERE-Bedingung so schreiben:
WHERE Datum >= 2008-04-01 AND Datum <= 2008-04-30
Damit würdest du soagr vom Index profitieren, falls du einen für die Spalte gesetzt hast.
du kannst deine WHERE-Bedingung so schreiben:
WHERE Datum >= 2008-04-01 AND Datum <= 2008-04-30
Damit würdest du soagr vom Index profitieren, falls du einen für die Spalte gesetzt hast.
#7
geschrieben 28. Mai 2008 - 10:19
danke für eure antworten
also das feld wo das datum vorhanden ist ist ein DATE feld aber ich bin bis jetzt immer noch nicht weiter gekommen
da ich ja die SQL abfrage habe
Select ..... WHERE date so jetzt könnte ich es so machen wie FaceItReal es beschrieben hat aber ich weis ja nicht immer welches monat 30 und welches 31 hat.... und das muss doch auch leichter gehn
geht das nicht einfach wenn ich schreibe:
WHERE date < '".date("m")."'
dann würds mir ja alle einträge anzeigen die kleiner als dieses monat sind das klappt aber leider nicht.
gibt es eine ähnliche einfache lösung? da es ja eingendlich beiedes ein DATE feld ist sowie in der Datenbank und mittels der funktion date()
also das feld wo das datum vorhanden ist ist ein DATE feld aber ich bin bis jetzt immer noch nicht weiter gekommen
da ich ja die SQL abfrage habe
Select ..... WHERE date so jetzt könnte ich es so machen wie FaceItReal es beschrieben hat aber ich weis ja nicht immer welches monat 30 und welches 31 hat.... und das muss doch auch leichter gehn
geht das nicht einfach wenn ich schreibe:
WHERE date < '".date("m")."'
dann würds mir ja alle einträge anzeigen die kleiner als dieses monat sind das klappt aber leider nicht.
gibt es eine ähnliche einfache lösung? da es ja eingendlich beiedes ein DATE feld ist sowie in der Datenbank und mittels der funktion date()
#8
geschrieben 28. Mai 2008 - 13:40
SELECT * FROM Tabelle WHERE DATE_FORMAT( Datum, '%Y-%m' ) = '2008-04'
Thema verteilen:
Seite 1 von 1