View Full Version : Select Abfrage now() läuft auf Fehler
Hallo Britta,
ich habe mich wahrscheinlich nicht eindeutig ausgedrückt iich bekomme nicht nur die Datensätze vom 14.11.2012 (das wäre ja okay) sondern von allen Tagen!!!
Hallo Andreas,
funktioniert leider nicht (ODBC-Aufruf fehlgeschlagen [IBM] [System i Access ODBC-Treiber][DB2 für i5/OS]SQL0104-Token ) ungültig. Gültige Token:......)
Ich habe es auch direkt im "System i Navigator" getestet da wird die letzte schließende Klammer markiert (läuft nicht), nehme ich die weg kommt die
Fehlermeldung:
"Nachricht: [SQL0181] Wert in Datums-, Zeit- oder Zeitmarkenzeichenfolge ungültig. Ursache . . . . : Die Darstellung der Zeichenfolge eines Datums-, Zeit- oder Zeitmarkenwerts erfüllt nicht die Bedingungen. *N ist entweder die ungültige Zeichenfolgekonstante oder die Spalten- oder Host-Variable, die die Zeichenfolge enthielt...."
andreaspr@aon.at
14-11-12, 11:52
1. Birgitta hat dich schon richtig verstanden.
Sie hat ganz richtig gesagt, dass du alle Sätze bekommst, wenn du Tagesdatum mit Tagesdatum vergleichst.
Es wäre das selbe wenn du WHERE 1=1 schreiben würdest.
2. zum Fehler:
ODBC/JDBC Treiber führt einige konvertierungen durch.
Probier einfach folgendes:
select bmfirm, bmiden, bmidv, bmprnr, bmqkz, bmqsta,
bmort, bmber,
bmbmen, bmvmen, bmrmen, bmlm, bmmlm,
bmlenr, bmzule, bmbst1, bmbstp,
bmwenr, bmwepo, bmdtdc, bmdtee,
from birdatv6.pbestlo
WHERE Date(Trim (Char (BMDTEE )) concat '000000') = Current Date
order by bmdtee DESC
Hallo Birgitta,
entschuldige die Unwissenheit eines Leien!!:o
Hallo Andreas,
sorry funktioniert leider immer noch nicht:
(ODBC-Aufruf fehlgeschlagen [IBM] [System i Access ODBC-Treiber][DB2 für i5/OS]SQL0181-Wert in Datums-,Zeit-oder Zeitmarkenzeichenfolge ungültig.(#-181),
aber ich glaube wir sind nah dran.
Vielen Dank erstmal für Deine (Eure) Hilfe!!!
andreaspr@aon.at
14-11-12, 12:46
Bei mir funktioniert es im Navigator.
Eventuell hast du in der Spalte nicht durchgehend das Format CCYYMMDD??
Lass dir mal den größten und niedrigsten Wert anzeigen.
Select Min(BMDTEE ) From birdatv6.pbestlo
Select Max(BMDTEE ) From birdatv6.pbestlo
SQL0181-Wert in Datums-,Zeit-oder Zeitmarkenzeichenfolge ungültig.(#-181)
Dann habt Ihr numerische Werte, die sich nicht in ein Datum konvertieren lassen, z.B. 0 oder 20110229.
In diesem Fall wäre es besser das Current_Date in einen numerischen Wert zu verwandeln.
Das funktioniert wie folgt:
Dec(Replace(Char(Current_Date, ISO), '-', ''), 8 , 0)
Oder falls Ihr auf Release 6.1 oder höher seid:
Dec(VarChar_Format(Current_Timestamp, 'YYYYMMDD'), 8, 0)
Birgitta
camouflage
14-11-12, 14:15
OT
Oder falls Ihr auf Release 7.1 oder höher seid:
Uuiii Brigitta, müsste ich da was wissen?
/OT
OT
Uuiii Brigitta, müsste ich da was wissen?
/OT
... Sorry kleiner Vertipper (die 6 liegt ja auch knapp neben der 7)!
Außerdem haben wir für Release 7.1 inzwischen den 5. Technologie Review (TR) was auch fast 2 Releases gleichkommt ;)
Birgitta
Hallo Ihr Zwei :D:D,
genau das war das Problem, es gab einen
Datensatz (Wie das auch immer passiert ist ???) mit blank und deswegen hat es auch nicht funktioniert!!!!!
Jetzt klappt es Prima, dank Eurer Hilfe
nochmals Vielen Dank!!!!
Aber eine kleine Frage habe ich noch,
wenn ich den aktuellen Tag und den Tag
davor haben möchte (-1) wie Frage ich das ab????
andreaspr@aon.at
14-11-12, 15:10
Current Date - 1 Days
Current DAte + 1 Months
usw.
Hallo AS/400 Freunde,
seit dem ich meine Abfrage mit
AND Date(Trim (Char (TPDTE )) concat '000000') >Current Date -2 days abfrage benötige ich
das vielfache an Zeit gegenüber früher:
AND TPDTE > '20121231'Wie kommt das :confused: bzw. wie kann man das
wieder optimieren???