HDsports 0 Geschrieben 31. August 2023 Melden 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.
zahni 587 Geschrieben 31. August 2023 Melden 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.
HDsports 0 Geschrieben 31. August 2023 Autor Melden 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.
zahni 587 Geschrieben 31. August 2023 Melden 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
HDsports 0 Geschrieben 31. August 2023 Autor Melden 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.
zahni 587 Geschrieben 31. August 2023 Melden 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
cj_berlin 1.508 Geschrieben 31. August 2023 Melden 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()
HDsports 0 Geschrieben 31. August 2023 Autor Melden 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
zahni 587 Geschrieben 1. September 2023 Melden 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.
NilsK 3.045 Geschrieben 1. September 2023 Melden Geschrieben 1. September 2023 Moin, das sieht man an der Syntax. Gruß, Nils
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden