Like bei Datetime oder Timestamp in MYSQL
Meine DB enthält folgenden Eintrag in der Tabelle event
eid, datum, plane, name
5 2009-05-14 20:00:00 Bierkeller Stammtisch
Das Feld datum hat den Typ timestamp
jetzt will ich nur Einträge anzeigen, die im aktuellen Monat sind, also
SELECT * FROM event WHERE 'datum' LIKE '2009-05%'
Die Anfrage liefert kein Ergebnis (aber keine Fehlermeldung)
Das hier hilft auch nichts:
SELECT * FROM event WHERE cast('datum' AS char) LIKE '2009-05%'
Ich bin jetzt ziemlich ratlos.
Edit: Ahhh... wenn man als Typ dateTime verwendet geht es auch... Komisch. Was genau ist denn der Unterschied zwischen Datetime und Timestamp?
eid, datum, plane, name
5 2009-05-14 20:00:00 Bierkeller Stammtisch
Das Feld datum hat den Typ timestamp
jetzt will ich nur Einträge anzeigen, die im aktuellen Monat sind, also
SELECT * FROM event WHERE 'datum' LIKE '2009-05%'
Die Anfrage liefert kein Ergebnis (aber keine Fehlermeldung)
Das hier hilft auch nichts:
SELECT * FROM event WHERE cast('datum' AS char) LIKE '2009-05%'
Ich bin jetzt ziemlich ratlos.
Edit: Ahhh... wenn man als Typ dateTime verwendet geht es auch... Komisch. Was genau ist denn der Unterschied zwischen Datetime und Timestamp?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 116715
Url: https://administrator.de/forum/like-bei-datetime-oder-timestamp-in-mysql-116715.html
Ausgedruckt am: 11.04.2025 um 17:04 Uhr
3 Kommentare
Neuester Kommentar
Hier noch als Ergänzung:
Das funktioniert mit "Timestamp" oder mit "dateTime"-Felder und ist effizienter als LIKE. Die DB rechnet die Felder automatisch um.
Du kannst mit dem Timestamp-Feld auch mit mit Zeitabständen rechnen (zeige mir alles vom letzten Monat (31 DAY); MONTH oder YEAR geht natürlich auch, die Units dazu findes du hier):
Gruß
Frank
SELECT * FROM event WHERE year(datum) = '2009' AND month(datum) = '5'
Du kannst mit dem Timestamp-Feld auch mit mit Zeitabständen rechnen (zeige mir alles vom letzten Monat (31 DAY); MONTH oder YEAR geht natürlich auch, die Units dazu findes du hier):
SELECT * FROM event WHERE datum BETWEEN SUBDATE(NOW(),INTERVAL 31 DAY) AND NOW()
Gruß
Frank