[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Zitat Zitat von B.Hauser Beitrag anzeigen
    @Andreas

    Nimm lieber DIGITS statt CHAR!

    CHAR entfernt führende Nullen und richtet linksbündig aus und könnte somit zu unliebsamen Überraschungen führen.
    Stimmt, bei CHAR muss man noch ein TRIM dazu setzen.
    DIGITS ist ein guter Tipp!

  2. #2
    Registriert seit
    Sep 2011
    Beiträge
    20
    Hallo,
    erstmal Vielen Dank für Euren regen Einsatz und die vielen Tipps, finde ich echt Klasse, mein Problem ist leider noch nicht ganz gelöst. Ich habe jetzt zwar die Spalte "date", die ich auch sortieren kann, aber das ich nur die Ansicht eines Tages (aktuellen Tag am besten now()!!!) bekomme ich nicht hin, ich habe immer noch alle Datensätze, hier der Code:
    Code:
    select bmfirm, bmiden, bmidv, bmprnr, bmqkz, bmqsta,            
           bmort, bmber,                  
           bmbmen, bmvmen, bmrmen, bmlm, bmmlm,                     
           bmlenr, bmzule, bmbst1, bmbstp,                          
           bmwenr, bmwepo, bmdtdc, bmdtee, 
    (left(DIGITS(BMDTEE ), 4) Concat '-' concat  
    Substring(DIGITS(BMDTEE ), 5, 2) Concat '-' concat
    right(trim (DIGITS(BMDTEE )), 2))date                            
    from birdatv6.pbestlo
    
    WHERE current date = date('2012-11-14')
    order by date  DESC
    Wo liegt mein Fehler???

  3. #3
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Ich glaube du hast uns da etwas missverstanden.
    Die Anweisung sollte wie folgt aussehen:

    Code:
    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(Digits(BMDTEE ) concat '000000')) = Current Date
    order by bmdtee DESC

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Das Tagesdatum ist ja auch der 14.11.2012.

    Wenn Du also selektierst
    Where Tagesdatum = 14.11.2012 bekommst Du auch alle Datensätze.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  5. #5
    Registriert seit
    Sep 2011
    Beiträge
    20
    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...."

  6. #6
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    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:

    Code:
    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

  7. #7
    Registriert seit
    Sep 2011
    Beiträge
    20
    Hallo Birgitta,

    entschuldige die Unwissenheit eines Leien!!

    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!!!

  8. #8
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    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

  9. #9
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von svt Beitrag anzeigen
    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:
    Code:
    Dec(Replace(Char(Current_Date, ISO), '-', ''), 8 , 0)
    Oder falls Ihr auf Release 6.1 oder höher seid:
    Code:
    Dec(VarChar_Format(Current_Timestamp, 'YYYYMMDD'), 8, 0)
    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  10. #10
    Registriert seit
    Jan 2007
    Beiträge
    1.002
    OT

    Oder falls Ihr auf Release 7.1 oder höher seid:
    Uuiii Brigitta, müsste ich da was wissen?

    /OT
    kf

  11. #11
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von camouflage Beitrag anzeigen
    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
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  12. #12
    Registriert seit
    Sep 2011
    Beiträge
    20

    Thumbs up geschafft!!!!!

    Hallo Ihr Zwei ,

    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????

Similar Threads

  1. JDBC Abfrage mit DB-Tool , SQL0901 Fehler
    By COS in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 17-11-08, 08:13
  2. CREATE FUNCTION mit select im Bauch ?
    By cheffe1008 in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 21-09-06, 16:05
  3. Triggersyntax erzeugt nur Fehler
    By deni87991 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-08-06, 10:05
  4. Fehler im SQL bzw. Joblog
    By GraueEminenz in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 10-07-06, 11:58
  5. Cobol-Programm mit Embedded SQL (SELECT CASE)
    By klausgkv in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 08-06-06, 13:47

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •