PDA

View Full Version : Aktuelles Datum in SQL



69sky
27-11-03, 15:03
Hallo *all,

gibt es eine Möglichkeit im SQL das aktuelle Datum in einer variablen Abzufragen. Möchte folgendes Abfragen:

So sieht mein SQL jetzt aus:
Feld1 >=20031127

Soll so aussehen
Feld1 >= Syntax aktuelles Datum

Klar, ich könnte ein CL vorhängen und die varible mit &Datum übergeben aber das soll in diesem Fall nicht geschehen, bitte fragt nicht warum...!

Danke für jeden Tip

Bye sagt der SKY und Gruß an alle die Ihre iSeries so lieben wie ich *grins*

Fuerchau
27-11-03, 15:08
Die lösung heißt hier "Current Date", gibt allerdings einen Wert vom Typ "Datum" zurück.
Hier ist also eine Umformatierung deines Feldes oder des Datums nötig.

69sky
27-11-03, 15:34
Danke für die schnelle Antwort: Mit curdate kann ich es mal versuchen. Allerdings werde ich dann das Datum noch mit substr, cast &co in das richtige Format zwängen müssen *grübel* In den H Bestimmungen in ILE RPG kann man so schön das Zeitformat bestimmen... Wenn es das noch im SQL gäbe...!

Bye sagt der SKY

B.Hauser
27-11-03, 16:32
Hallo SKY,

natürlich ist es auch möglich das Datums-Format mit/in SQL zusetzen und zwar genauso elegant wie mit ILERPG:

Einfach im embedded SQL oder in einer SQL-Prozedur das Statement SET OPTION DATFMT = *ISO einfügen.

Zur Umsetzung eines Datums in ein numerisches Datum brauchst Du auch nicht zwingend das Format zu wissen.

Wenn Du folgende kleine SQL-Funktion erstellts, erhälst Du das Tages Datum in numerischem Format mit JJJJMMTT zurück.

Funktion:


create function MyLib/CurrDateNum ()
returns Dec(8, 0)
Language SQL
Begin
Declare DateNum Dec(8, 0);
Set DateNum = Year(Current Date) * 10000
+ Month(Current Date) * 100
+ Day(Current Date);
Return DateNum;
End


Aufruf


Select * from MyFile
Where DateNum > CurrDateNum()


Birgitta