[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2004
    Beiträge
    203

    SQL Datumsfrage

    Hallo *world,

    ich habe schon ein wenig gegoogelt aber bisher bin ich bei foglender Frage nicht so richtig
    fündig geworden ...
    Ich habe heir ein Char Feld (10) mit z. B. folgendem Inhalt '03.10.2014'.
    Nun wollte ich alle Datensäte vor einem bestimmten Datum löschen und suche eine Funktion in folgender Form ... where date(feld, format) < 20140930.
    Gefunden habe ich dazu nichts und ich habe mich dann mit substring und multiplikation beholfen ... finde ich aber sehr umständlich.

    Also : Gibts so was was ich suche ... ?

    Danke und alle schon mal ein schönes Wochenende

    Ralf

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.304
    Wie wärs mit der Funktion DATE()?

    The following DATE scalar function applied to an EUR string representation of a date:

    SELECT DATE('25.12.1988')
    FROM SYSIBM.SYSDUMMY1

    Results in a date data type with a value of ‘1988-12-25'.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Die SQL-Funktion DATE() erkennt EUR-Format, ISO-Format geht immer.

    Die Frage die sich mir stellt:
    Ist das Datenbankfeld vom Typ CHAR(10) oder vom Typ DATE?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.869
    SQL kann alphanumerische Darstellungen eines Datums in den folgenden Formaten auch ohne explizite Konvertierung erkennen:
    1. ISO-Format: 'JJJJ-MM-TT'
    2. Europäisches Format: 'TT.MM.JJJJ'
    3. USA-Format: 'MM/TT/JJJJ'
    4. Zeitmarken-Format mit Trennzeichen: 'JJJJ-MM-TT-HH-MI-SS.MSMSMS'
    oder 'JJJJ-MM-TT HH:MI:SS.MSMSMS'
    5. Zeitmarken-Format ohne Trennzeichen: 'JJJJMMTTHHMMSS'

    Du kannst die Sätze mit einer der folgenden WHERE-Bestimmungen konvertieren:
    WHERE yourCharDate >= Date('1.7.2014')

    oder
    WHERE Date(YourCharDate) >= '2014-07-01'

    oder
    WHERE Date(YourCharDate) >= '20140701000000'

    Birgittta
    Birgitta Hauser

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

  5. #5
    Registriert seit
    Dec 2004
    Beiträge
    203
    Hallo *all,

    vielen Dank für die umfangreichen Antworten.

    Gruß von der dänischen Grenze
    Ralf

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Wobei ein Cast auf ein Dateifeld in der Where-Klausel möglichst vermieden werden sollte, da dann kein Index verwendet werden kann.
    (OK, mit (ab V7?) den "berechneten Indizes" soll das dann auch gehen.)
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Berechtigungen

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