View Full Version : 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?
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
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
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.
Dann muss ich mit 0001-01-01 wohl leben. Danke für die Hilfe!
Wenn es nur um die Darstellung geht :
select coalesce(DatumFeld, 0)
bringt das Datum, wenn DatumFeld <> NULL sonst 0
Gruß
Rolf