Hallo,
ich habe in einer Mysql-Tabelle ein Feld namens Datum im Format „date“, nicht NULL.
Dieses Feld wird bisher dazu benutzt, Datensätze erst ab einem bestimmten Datum, 0 Uhr, anzuzeigen.
Jetzt hätte ich gerne, dass er die Daten erst ab 12 Uhr Mittags anzeigt.
D.h. ich kann die bisherige Abfrage mit TO_DAYS(NOW()) - TO_DAYS(a.datum) >=0 nicht mehr verwenden, sondern muss das Ganze mit Sekunden machen:
Die 12 Stunden hänge ich mit concat an das Datumsfeld a.datum an:
TIME_TO_SEC(TIMEDIFF(NOW(), concat(a.datum,’ 12:00:00’)))) > 43200
Weil jetzt eine Fehlermeldung kommt, die sagt, dass Mysql mit dem normalen Datumsformat Probleme hat, verwende ich STR_TO_DATE:
TIME_TO_SEC(TIMEDIFF(NOW(), STR_TO_DATE(concat(a.datum,’ 12:00:00’), ‚%Y-%m-%d %H:%i:%s‘))) > 43200
Das scheint zwar zu funktionieren, PhpMyAdmin spuckt aber für jeden Datensatz ein
1292 - incorrect date value bzw. die deutsche Meldung dazu aus.
Es macht auch keinen Unterschied, wenn ich das Datum von date auf datetime ändere. Der Fehler kommt trotzdem.
Wo ist da ein Fehler? Danke.
Ich fand auf Google keine vernünftige Antwort dazu.
P.S: die 2 Kommata vor %Y sind kein Eingabefehler von mir, sondern ein Fehler vom Wer-weiss-was-Editor. Da gehört nur eines hin, aber das lässt sich nicht sauber ändern.