Vinzenz Mai: SQL-Statement im DB2-Umfeld

Beitrag lesen

Hallo Simone,

Grundsätzlich könntest Du dieses Problem mit der Funktion VARCHAR_FORMAT(timestamp_expression, format_string) lösen. Statt CURRENT_DATE verwendest Du in diesem Fall CURRENT_TIMESTAMP. Datumsarithmetik ist im SQL-Dialekt von DB2 intuitiv gestaltet, somit kämst Du zu folgendem Ausdruck:

Wie bekommen ich am einfachsten mein Feld (ist ein normalen CHAR-Feld) mit dem Wert 200805 gefüllt ?

VARCHAR_FORMAT(CURRENT_TIMESTAMP - 1 MONTH, 'YYYYMM')

Was ich noch nicht weiß ist, wie ich den Tabellennamen und die betroffene Spalte ansprechen kann.

Ich habe es jetzt mal so probiert, geht aber nicht:

UPDATE Tabelle
SET Spalte = VARCHAR_FORMAT(CURRENT_TIMESTAMP - 1 MONTH, 'YYYYMM')

UPDATE  
    test  
SET  
    vormonat = VARCHAR_FORMAT(CURRENT_TIMESTAMP - 1 MONTH, 'YYYYMM')  
WHERE  
    ID = 5;  

wird von meiner DB2 Express anstandslos verarbeitet. Dabei spielte es unerheblich, ob die Spalte vom Typ VARCHAR(6) oder CHARACTER(6) war.

Freundliche Grüße

Vinzenz

PS: Bitte keine Fullquotes.