HDsports 0 Geschrieben 31. August 2023 Melden Teilen Geschrieben 31. August 2023 Hallo, ich habe für einen Eventkalender immer das Datum vom alten Jahr auf das neue Jahr übernommen und dabei per SQL-Befehl einfach 52 Wochen ergänzt. Dazu habe ich folgenden Befehl verwendet: UPDATE `ngie_jreviews_content` SET `jr_datum2023` = `jr_datum2022` + INTERVAL 364 DAY, `jr_termin2023offen` = '*ja*' WHERE `jr_datum2023` IS NULL AND DATE(`jr_datum2022`) IS NOT NULL; Nun funktioniert interessanterweise dieser Befehl nicht mehr. Da scheint es wohl am "INTERVAL 364 DAY" zu haken. Als Fehlermeldung erhalte ich in phpmyadmin: #1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei ')' in Zeile 2 Könnt ihr da weiterhelfen? Vor einem Jahr hatte dieser Befehl noch einwandfrei funktioniert. Zitieren Link zu diesem Kommentar
zahni 550 Geschrieben 31. August 2023 Melden Teilen Geschrieben 31. August 2023 Das hakt eher am '*ja*' Und hier bekommst Du keinen Treffer: WHERE `jr_datum2023` IS NULL AND DATE(`jr_datum2022`) IS NOT NULL; Entweder ist die Spalte NULL oder nicht NULL. Aber nicht beides. Zitieren Link zu diesem Kommentar
HDsports 0 Geschrieben 31. August 2023 Autor Melden Teilen Geschrieben 31. August 2023 nein, das *ja* ist kein Problem. NULL und nicht NULL ist uach kein Problem. das sind ja zwei unterschiedliche Felder (2022 bzw. 2023) ;) wenn ich das INTERVAL 364 DAY entferne, verschwindet auch der Fehler. Allerdings hat der Befehl in der Vergangenheit immer funktioniert. Zitieren Link zu diesem Kommentar
zahni 550 Geschrieben 31. August 2023 Melden Teilen Geschrieben 31. August 2023 vor 5 Minuten schrieb HDsports: nein, das *ja* ist kein Problem. NULL und nicht NULL ist uach kein Problem. das sind ja zwei unterschiedliche Felder (2022 bzw. 2023) ;) Ok. sorry. Die DATE()-Funktion ist für den Test auf NULL aber komplett überflüssig. Du kannst natürlich gern "*ja*" in eine Varchar-Spalte schreiben. Spezielle Datumsfunktionen sind leider in jedem DBMS anders implementiert. INTERVAL scheint es bei MSSQL so nicht zu geben. Dort ist es wohl TIMESTAMPADD() https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/time-date-and-interval-functions?view=sql-server-ver16 Zitieren Link zu diesem Kommentar
HDsports 0 Geschrieben 31. August 2023 Autor Melden Teilen Geschrieben 31. August 2023 was muss ich denn da nun statt INTERVAL 364 DAY integrieren? So weit ist mein SQL-Wissen leider nicht. TIMESTAMPADD hatte ich noch nie gehört. Das neue Datum sollte einfach nur 364 Tage über dem alten Datum liegen. Zitieren Link zu diesem Kommentar
zahni 550 Geschrieben 31. August 2023 Melden Teilen Geschrieben 31. August 2023 (bearbeitet) Ich habe doch einen Link angefügt. Lesen musst Du selber. PS: Der Link ist besser: https://learn.microsoft.com/en-us/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-ver16 bearbeitet 31. August 2023 von zahni Zitieren Link zu diesem Kommentar
cj_berlin 1.312 Geschrieben 31. August 2023 Melden Teilen Geschrieben 31. August 2023 Eigentlich ist dieser Link besser, weil es um MySQL und nicht um MSSQL geht: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html Du suchst nach DATE_ADD() Zitieren Link zu diesem Kommentar
HDsports 0 Geschrieben 31. August 2023 Autor Melden Teilen Geschrieben 31. August 2023 (bearbeitet) okay, ich habe es mit SET `jr_datum2023` = DATE_ADD(`jr_datum2022`, INTERVAL 364 DAY) versucht. Da kommt zwar kein Fehler, aber wenn ich auf "Abfrage simulieren" klicke, kommt bei "Gefundene Zeilen: 0". Tatsächlich sind es aber nicht 0 wenn ich testweise einfach SET `jr_datum2023` = `jr_datum2022` nehme, sind es 65 Zeilen. EDIT: Ach funktioniert doch. Beistrich fehlte am Ende bearbeitet 31. August 2023 von HDsports Zitieren Link zu diesem Kommentar
zahni 550 Geschrieben 1. September 2023 Melden Teilen Geschrieben 1. September 2023 vor 20 Stunden schrieb cj_berlin: Eigentlich ist dieser Link besser, weil es um MySQL und nicht um MSSQL Wo stand dass denn? Es wurde MSSQL-Forum gepostet. Bei MySQL gibt es INTERVAL. Zitieren Link zu diesem Kommentar
NilsK 2.932 Geschrieben 1. September 2023 Melden Teilen Geschrieben 1. September 2023 Moin, das sieht man an der Syntax. Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.