Archiv verlassen und diese Seite im Standarddesign anzeigen : Datumsänderung bei Beiträge in MySql
Onkel_Tom
16.06.2003, 19:04
Hallo zusammen,
Ich habe folgendes Problem:
Die Serveruhr hatte über das Wochenende ein Problem und lief mit doppelter Geschwindigkeit (Ja, es gibt Provider die übertakten die CPU und andere nur die Mainboarduhr :D) Nachdem der Fehler heute repariert worden ist habe ich nun das Problem das heute Beiträge (16.6) nicht mehr als die Aktuellsten angezeigt werden das die Uhr heute morgen schon den 18.6 angezeigt hat.
Wie müsste ein Script aussehen um die Beiträge vom 17.06.2003 0:01 Uhr bis 18.06.2003 12:30 Uhr in der MySql Datenbank zurück auf den 16.06.2003, Uhrzeit egal, zu setzen ???
Hat von Euch einer eine Idee, ich komme mit der dateline Angabe in der MySql db nicht klar.
Ok, da diese Querys unheimlich viel Mist machen können, führ sie auf gar keinen Fall aus, wenn du kein Backup deiner DB hast!!!
UPDATE post SET dateline=UNIX_TIMESTAMP('2003-06-16 08:00:00')
WHERE dateline > UNIX_TIMESTAMP('2003-06-17 00:00:01')
AND dateline < UNIX_TIMESTAMP('2003-06-18 12:30:00')
Gleiches für die Tabelle thread
UPDATE thread SET dateline=UNIX_TIMESTAMP('2003-06-16 08:00:00')
WHERE dateline > UNIX_TIMESTAMP('2003-06-17 00:00:01')
AND dateline < UNIX_TIMESTAMP('2003-06-18 12:30:00')
Onkel_Tom
16.06.2003, 22:38
Danke Stephan,
Ich habe zwar ein Dump der MySql aber irgendwie hast Du mich mit dem Satz etwas unsicher gemacht.
Soll ich oder doch lieber 2 Tage warten bis die Reihenfolge der Beiträge wieder einigermaßen stimmt ?
Klar sind dann immer noch die Threads wo innerhalb dieser 2 Tage geschrieben worden sind durcheinander aber irgendwie habe ich muffe das ich das ganze Board crashe ! Bin noch viel zu neu im Thema vB und MySql um hier mit großen Sprüchen zu tönen ;)
Ich denke schon, dass du das Query ausführen kannst, allerdings weiß ich nicht, wie die Beiträge geordnet sind, wenn sie alle das selbe Datum haben. Warten ist sicher die einfachste Möglichkeit, allerdings sollten dann in dieser Zeit auch keine Beiträge in diese Themen geschrieben werden, da die ja vor den "älteren" einsortiert werden.
Onkel_Tom
16.06.2003, 23:37
Das ist ja das Problem. Das Board ist offen und alle Beiträge die geschrieben werden, werden vor den Beiträgen des Wochenendes bzw. von heute morgen einsortiert !
Das macht die ganze Struktur den Beitrags irgendwie in den Ar...
Kann man Query auch so gestalten, dass er die Uhrzeit unberührt lässt und somit nur das Datum bei den Beiträgen vom 17. und 18. Juni ändert ?
Sorry, das ich Dich nerve aber ich trau mich nicht der Query abzusetzen ohne das Resultat schon vorher abzuprüfen.
Ok mach mal folgendes:
UPDATE post SET dateline=dateline-172800
WHERE dateline > UNIX_TIMESTAMP('2003-06-17 00:00:01')
AND dateline < UNIX_TIMESTAMP('2003-06-18 12:30:00')
UPDATE thread SET dateline=dateline-172800
WHERE dateline > UNIX_TIMESTAMP('2003-06-17 00:00:01')
AND dateline < UNIX_TIMESTAMP('2003-06-18 12:30:00')
Damit wir das Datum dieser Beiträge um 2 Tage zurückgesetzt.
Testen könntest du das ganze einfach mal mit
SELECT from_unixtime(dateline-172800) AS newdate,postid,title FROM post
WHERE dateline > UNIX_TIMESTAMP('2003-06-17 00:00:01')
AND dateline < UNIX_TIMESTAMP('2003-06-18 12:30:00')
SELECT from_unixtime(dateline-172800) AS newdate,threadid,title FROM thread
WHERE dateline > UNIX_TIMESTAMP('2003-06-17 00:00:01')
AND dateline < UNIX_TIMESTAMP('2003-06-18 12:30:00')
Dabei wird nichts in der DB verändert, sondern nur angezeigt, wie das Datum geändert wird.
Onkel_Tom
17.06.2003, 01:16
Stephan, Du bist der Beste !!!
Vielen, vielen Dank für Deine Unterstützung. Hat alles Bestens geklappt. Die entsprechenden Beiträge haben sich wieder richtig eingereiht und alle Probleme sind beseitigt.
Schön das es Euch gibt und hier wirklich eine super Arbeit leistet. Macht weiter so !
vBulletin® v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.