Jump to content

SQL Befehl - kleines Problem


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

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:

dot.gif
#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.

Geschrieben

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.

Geschrieben
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

 

Geschrieben (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 von HDsports
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...