Anmelden

View Full Version : SQL - Problem



Franz Karl
23-07-12, 09:23
Hallo zusammen,

wieso funktioniert das bei einem SELECT * aber nicht bei einem UPDATE


update X420PRDSD/BEKN SET BOSTAP = '0'
WHERE
DAYS(DATE(DAY(BOGUBI)||'.'||MONTH(BOGUBI)||'.'||ye ar(BOGUBI)))
<
DAYS(CURDATE())-360


Bekomme hier die Fehlermeldung

Wert in Datums-, Zeit- oder Zeitmarkenzeichenfolge ungültig.


Danke

B.Hauser
23-07-12, 11:03
Was für ein Format (alpha, numerisch, Datum) hat eigentlich BOGUBI.

Sofern Du mit den Funktionen DAY, MONTH, YEAR arbeiten kannst, sollte es ein Datum oder eine Zeitmarke sein.

Dann stellt sich allerdings die Frage warum Du die Klimmzüge machst, das Datum zunächst in eine alphanumerische Darstellung eines Datums zu konvertieren und dann wieder in ein Datum, nur um die Anzahl der Tage zu ermitteln.

Sofern es sich um ein Datum oder Zeitmarke handelt, sollte das Ganze auch so funktionieren:

Where BOGUBI < (Current_Date - 360 Days)

sofern es sich nicht um ein Datum eine Zeitmarke oder eine gültige alphanumerische Darstelllung eines Datums handelt, kannst Du auch nicht die Funktionen Days, Days, Month, Year verwenden.

Birgitta

Franz Karl
23-07-12, 11:10
Vielen Dank für die Info,

ja es funktioniert. Das Format im Feld BOGUBI - 20120723


Danke

B.Hauser
23-07-12, 11:26
Vielen Dank für die Info,

ja es funktioniert. Das Format im Feld BOGUBI - 20120723


Danke

Das ist aber kein Datum oder (für SQL gültige) alphanumerische Darstellung, sondern entweder ein alphanumerisches Datum ohne Trennzeichen oder ein numerisches Datum.

Gültige alphanumerische Darstellungen für ein Datum sind:
'JJJJ-MM-TT', 'TT.MM.JJJJ', 'MM/TT/JJJJ', 'JJJJ/TTT'
oder eine alphanumerische Zeitmarke im Format:
'JJJJ-MM-TT-HH.MM.SS.MSMSMS' , 'JJJJ-MM-TT HH:MM:SS.MSMSMS', 'JJJJMMTTHHMMSS'

In beiden Fällen ist eine Konvertierung in ein Datum erforderlich.
Die einfachste Methode ist:
1. für ein alphanumerisches Datum im Format JJJJMMTT:

Date(DatumAlpha concat '000000')
2. für ein numerisches Datum im Format JJJJMMTT

Date(Digits(DatumNum) concat '000000')

Birgitta

Franz Karl
23-07-12, 13:47
Ja super vielen Dank. Sehr viel einfacher.

Grüsse Franz