[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2002
    Beiträge
    19

    Question Typ DATE in SQL-Tabelle

    Hallo, wir haben einige Felder in einer SQL-Tabelle als Typ DATE definiert. Wenn aber kein Wert in dem Feld steht, wird es automatisch mit 0001-01-01 gefüllt. Kann man das nicht verhindern? Wieso ist nicht 0 möglich?

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    340

    Post

    Der definierte *LOWVAL für den Typ DATE ist '0001-01-01' ( ISO - Norm ). Einzige Alternative ist das Null-Attribut.

    ( CREATE TABLE ... (..., x1 DATE, ... ) dann hat x1 das Null-Attribut solange kein Wert eingegeben wurde, bzw. das Feld mit NULL upgedatet wurde.

    Gruß
    Rolf

  3. #3
    Registriert seit
    Aug 2002
    Beiträge
    19

    Post

    Funktioniert bei mir natürlich wieder nicht. Habe über strsql folgendes eingegeben:
    create table tstdta/test (datum date)
    Habe aber wieder 0001-01-01. Gruß Melanie

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241

    Post

    Wann kommt das Datum "0001-01-01" denn ?
    Wenn du mit UPDDTA versuchst Daten einzugeben, dann schlägt DFU automatisch diesen Wert vor.
    Beim Select in einem Programm must du eine Indicator-Variable verwenden. Der Wert NULL ist im Feld selbst nicht darstellbar, sondern wieder *LOVAL:

    select date, f2 from file into :mydate :dateflag, :myf2

    if dateflag = -1
    ... NULL vorhanden
    endif

    In RPGLE kannst du die interne Funktion %NULLIND(mydate) verwenden um den NULL-Inhalt abzufragen bzw. zu setzen.
    Beim READ wird das Feld halt immer mit *LOVAL gefüllt.
    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

  5. #5
    Registriert seit
    Aug 2002
    Beiträge
    19
    Dann muss ich mit 0001-01-01 wohl leben. Danke für die Hilfe!

  6. #6
    Registriert seit
    Jan 2001
    Beiträge
    340

    Post

    Wenn es nur um die Darstellung geht :
    Code:
    select coalesce(DatumFeld, 0)
    bringt das Datum, wenn DatumFeld <> NULL sonst 0

    Gruß
    Rolf

Similar Threads

  1. Antworten: 11
    Letzter Beitrag: 18-07-16, 09:49
  2. SQL Datum
    By steven_r in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 04-12-06, 12:16
  3. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  4. SQL Date im Datumsformat *EUR erstellen
    By N.Welp in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 03-11-05, 14:50
  5. CAST von Numeric nach Date via SQL
    By KB in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 15-05-01, 10:43

Berechtigungen

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