update

dwache

Neuer Benutzer
Beiträge
3
Hallo, der Versuch, die Tabelle mit "UPDATE garantieliste SET ablauf_garantie = kaufdatum + dauer;" auszulesen führt, wenn "dauer " über den Monatszeitraumn geht
zu "1292 - Falscher date-Wert: '20230332". Was ist die Lösung ?
 
Werbung:
Wenn Dein Feld "ablauf_garantie" ein Datumsfeld ist, kannst Du damit addieren.

DATE_ADD(<date>, INTERVAL <x> DAY)
Damit werden x Tage auf date addiert.
 
Mit UPDATE ließt man keine Tabellen aus, das macht man mit SELECT. Wie @dabadepdu schon schreibt ist date_add() dein Freund um einem DATE oder DATETIME-Wert etwas hinzu zu fügen.
 
hallo ich bin noch nicht lange dabei und hab mich wohl etwas undeutlich ausgedrückt.
Ich versuche ein Update der Spalte" ablauf_garantie" unter Berechnung der Spalten "kaufdatum" + "dauer",
Das klappt auch wenn die Tage (aus "dauer" ) + "kaufdatum" innerhalt des Monats liegen, sonst
kommt Fehlermeldung ""1292 - Falscher date-Wert: '20230332) also Monat mit 32 Tagen.
 
Code:
postgres=# create table dwache (kaufdatum date, dauer interval, ablauf_garantie date);
CREATE TABLE
postgres=# insert into dwache (kaufdatum , dauer) values (current_date, '1 day');
INSERT 0 1
postgres=# insert into dwache (kaufdatum , dauer) values (current_date, '10 day');
INSERT 0 1
postgres=# insert into dwache (kaufdatum , dauer) values (current_date, '100 day');
INSERT 0 1
postgres=# insert into dwache (kaufdatum , dauer) values (current_date, '1000 day');
INSERT 0 1
postgres=# select * from dwache ;
 kaufdatum  |   dauer   | ablauf_garantie 
------------+-----------+-----------------
 2023-06-05 | 1 day     | 
 2023-06-05 | 10 days   | 
 2023-06-05 | 100 days  | 
 2023-06-05 | 1000 days | 
(4 rows)

postgres=# update dwache set ablauf_garantie = kaufdatum + dauer;
UPDATE 4
postgres=# select * from dwache ;
 kaufdatum  |   dauer   | ablauf_garantie 
------------+-----------+-----------------
 2023-06-05 | 1 day     | 2023-06-06
 2023-06-05 | 10 days   | 2023-06-15
 2023-06-05 | 100 days  | 2023-09-13
 2023-06-05 | 1000 days | 2026-03-01
(4 rows)

postgres=#

Prost!
 
Werbung:
Zurück
Oben