THOMASBAUER.cc
Cadet 4th Year
- Registriert
- Aug. 2007
- Beiträge
- 86
Hey liebe Computerbase-Community,
ich habe für eine Webseite einen Sportkalender mit über 5.000 Events.
Nun möchte ich mittels SQL-Befehl die Termine aus dem Jahr 2017 automatisch in das Jahr 2018 übertragen.
Da die meisten Termine der Events in der selben Kalenderwoche wie im Vorjahr stattfinden, müsste ich nur den Termin von 2017 nehmen und davon einen Tag abziehen.
Also ein Event das am 10.10.2017 stattgefunden hat, soll für 2018 das Datum 09.10.2018 haben. Heißt, vereinfacht gesagt: Einfach 364 Tage dazuzählen.
Ich habe zwei Felder:
jr_datum: Gibt das Datum von 2017 aus
jr_datum2018: Gibt das Datum von 2018 aus
Die Tabelle lautet: xx_jreviews_content
Die Felder sind vom Typ "datetime", also kein Timestamp.
Bei jr_datum steht somit z.B: "2017-10-10 00:00:00 drinnen (Uhrzeit ist immer 00:00:00, hat aber keine Relevanz)
Wie kann ich nun die Termine von 2017 automatisch auf 2018 übertragen? Ich habe gelesen das da eine DATE_ADD Funktion hilft.
Ich nehme mal an dafür sollte sich schon eine Formel zusammenbastlen lassen?
Allerdings wird die Sache etwas komplizierter, den ich will zu der Abfrage einige Regeln miteinbauen:
* Wenn im Feld "jr_datum2018" bereits ein Termin eingetragen ist, wird diese Formel nicht angewandt. Das heißt nur wenn im Feld "jr_datum2018" "0000-00-00 00:00:00" eingetragen ist, soll diese Anweisung gültig sein. Das liegt daran, das ich von einigen Events schon vorab manuell den Termin für 2018 eingetragen habe.
* Da natürlich nicht bei allen Events dann tatsächlich der Termin zu diesem Tag stattfindet (z.B. ein Silvesterlauf findet immer am 31.12 statt und nicht dann wie bei dieser Formel am 30.12. Zudem gibt es auch Veranstaltungen die natürlich nicht in exakt der gleichen Woche wie im Vorjahr ausgetragen werden) , habe ich ein VARCHAR(255) Feld mit dem Namen "jr_terminoffen2018". Alle Termine die mittels dieser Anweisung für 2018 festgelgt wurden, sollen in diesem Feld den Wert "*ja*" erhalten.
Zur Erklärung: Im Backend meiner Webseite ist das eine Checkbox. Wenn ich da bei dem Termin ein Häckchen setze, wird im Frontend der Text ausgegeben das der Termin noch nicht offziell bestätigt ist, sondern nur eine Prognose anhand des Vorjahrestermins.
* Ich nehme mal an, man kann keine Ausnahmen bei dieser Abfrage einfügen? Also das alle Events mit Termin 31.12.2017 bei jr_datum für 2018 (jr_datum2018) den Termin 31.12.2018 erhalten und nicht 30.12.2018... Das gleiche z.B. am 3.10 (Tag der Deutschen Einheit) oder am 26.10 (Österreichische Nationalfeiertag) oder auch am Ostermontag (da müsste dann die events vom 17. April 2017 auf 2. April 2018 übertragen werden)...
So das wars aber, vielleicht kann sich ja ein SQL-Experte die Zeit nehmen und mir beim Zusammenbasteln der Formel helfen
LG
ich habe für eine Webseite einen Sportkalender mit über 5.000 Events.
Nun möchte ich mittels SQL-Befehl die Termine aus dem Jahr 2017 automatisch in das Jahr 2018 übertragen.
Da die meisten Termine der Events in der selben Kalenderwoche wie im Vorjahr stattfinden, müsste ich nur den Termin von 2017 nehmen und davon einen Tag abziehen.
Also ein Event das am 10.10.2017 stattgefunden hat, soll für 2018 das Datum 09.10.2018 haben. Heißt, vereinfacht gesagt: Einfach 364 Tage dazuzählen.
Ich habe zwei Felder:
jr_datum: Gibt das Datum von 2017 aus
jr_datum2018: Gibt das Datum von 2018 aus
Die Tabelle lautet: xx_jreviews_content
Die Felder sind vom Typ "datetime", also kein Timestamp.
Bei jr_datum steht somit z.B: "2017-10-10 00:00:00 drinnen (Uhrzeit ist immer 00:00:00, hat aber keine Relevanz)
Wie kann ich nun die Termine von 2017 automatisch auf 2018 übertragen? Ich habe gelesen das da eine DATE_ADD Funktion hilft.
Ich nehme mal an dafür sollte sich schon eine Formel zusammenbastlen lassen?
Allerdings wird die Sache etwas komplizierter, den ich will zu der Abfrage einige Regeln miteinbauen:
* Wenn im Feld "jr_datum2018" bereits ein Termin eingetragen ist, wird diese Formel nicht angewandt. Das heißt nur wenn im Feld "jr_datum2018" "0000-00-00 00:00:00" eingetragen ist, soll diese Anweisung gültig sein. Das liegt daran, das ich von einigen Events schon vorab manuell den Termin für 2018 eingetragen habe.
* Da natürlich nicht bei allen Events dann tatsächlich der Termin zu diesem Tag stattfindet (z.B. ein Silvesterlauf findet immer am 31.12 statt und nicht dann wie bei dieser Formel am 30.12. Zudem gibt es auch Veranstaltungen die natürlich nicht in exakt der gleichen Woche wie im Vorjahr ausgetragen werden) , habe ich ein VARCHAR(255) Feld mit dem Namen "jr_terminoffen2018". Alle Termine die mittels dieser Anweisung für 2018 festgelgt wurden, sollen in diesem Feld den Wert "*ja*" erhalten.
Zur Erklärung: Im Backend meiner Webseite ist das eine Checkbox. Wenn ich da bei dem Termin ein Häckchen setze, wird im Frontend der Text ausgegeben das der Termin noch nicht offziell bestätigt ist, sondern nur eine Prognose anhand des Vorjahrestermins.
* Ich nehme mal an, man kann keine Ausnahmen bei dieser Abfrage einfügen? Also das alle Events mit Termin 31.12.2017 bei jr_datum für 2018 (jr_datum2018) den Termin 31.12.2018 erhalten und nicht 30.12.2018... Das gleiche z.B. am 3.10 (Tag der Deutschen Einheit) oder am 26.10 (Österreichische Nationalfeiertag) oder auch am Ostermontag (da müsste dann die events vom 17. April 2017 auf 2. April 2018 übertragen werden)...
So das wars aber, vielleicht kann sich ja ein SQL-Experte die Zeit nehmen und mir beim Zusammenbasteln der Formel helfen
LG
Zuletzt bearbeitet: