UPDATE specials SET expires_date = REPLACE(expires_date, '00:00:00', '23:59:59') WHERE expires_date NOT LIKE '0000-00-00%';
sollte tun was du möchtest. (Vorher Tabelle
specials sichern !).
*EDIT*
NOT LIKE '0000-00-00%' in der WHERE-Clause verhindert, daß die Uhrzeit bei Einträgen vorgenommen wird die gar keine zeitliche Begrenzung des Angebotes haben, was es ja auch gibt.
Nebenbei:
Hier ist immer von "Bug" die Rede. Mit dem Begriff wäre ich vorsichtig.
Jeder kennt doch aus seiner Lebenserfahrung, daß, sagt jemand von "Montag bis Freitag" nicht klar ist ob einschließlich oder ausschließlich Freitag und deshalb das Zutreffende oft dazugesagt wird um Mißverständnisse zu vermeiden.
Wenn es also heißt Ablaufdatum 31.08. oder gültig bis 31.08. kann dies auch als ausschließlich verstanden werden und das wäre um 00:00 Uhr gegeben.
Es gibt keine Konvention die besagt, daß solche Angaben immer zwingend als einschließlich verstanden werden müssen/sollen, auch wenn es im Geschäftsleben oft heißt "Öffnungszeiten: Montags bis Freitags" und dort immer einschließlich verstanden wird.
Also, ein Bug ist das nicht zwingend, zumal man ja auch, weiß man um die Berechnungsart, einfach einen Tag mehr angeben kann, also 01.09, sodaß "bis 01.09." bedeutet 01.09. 00:00 und somit 31.08. einschließlich.
Am Besten wäre selbstverständlich, lässt man sich das Datum des Auslaufs eines Sonderangebotes im Shop anzeigen, das von mir dargelegte dort auch deutlich zu machen:
"
Sonderangebot gültig bis 31.08. einschließlich"
oder
"
Sonderangebot gültig bis 01.09. 00:00 Uhr"
oder wie auch immer.
So vermeidet man Mißverständnisse und ist somit user-freundlich
.
Gruß,
noRiddle