02.04.2013 Aufrufe

iNN - eNews - SSS-Software

iNN - eNews - SSS-Software

iNN - eNews - SSS-Software

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

zu RPG, wo seit Release V5R3M0 ein Datum über die Built-in-Function %DEC(Datum:<br />

*Format) direkt in einen numerischen Wert konvertiert werden kann, bietet SQL keine direkte<br />

Lösung an.<br />

CREATE FUNCTION MySchema/CvtDateToNum (ParDate Date)<br />

RETURNS DECIMAL(8, 0)<br />

LANGUAGE SQL<br />

NOT DETERMINISTIC<br />

CONTAINS SQL<br />

CALLED ON NULL INPUT<br />

DISALLOW PARALLEL<br />

RETURN Cast(Year(ParDate) * 10000 +<br />

Month(ParDate) * 100 +<br />

Day(ParDate)<br />

as Dec(8 , 0 ));<br />

Beispiel 1: UDF CvtDateToNum ⇒ Konvertieren Datum in numerische Darstellung<br />

Alternativ könnte natürlich auch eine in RPG geschriebene Funktion, in der das Datum<br />

mit Hilfe der Built-in-Funktion %DEC(Datum: *Format) konvertiert wird als externe UDF<br />

registriert werden.<br />

Leider ist es auch heute noch so, dass in vielen älternen Anwendungen Datums-Werte in numerischer<br />

Form gespeichert werden. Mit Hilfe dieser UDF können auch in SQL Datums-Werte<br />

einfach in eine numerische Darstellung konvertiert werden.<br />

Das folgende Beispiel zeigt wie die UDF CvtDateToNum in einem SQL-Statement verwendet<br />

werden kann, um das Tages-Datum in numerischer Form aufzubereiten.<br />

Update MySchema/MyTable<br />

Set DateNum = CvtDateToNum(Current_Date)<br />

Where DateNum < CvtDateToNum(Current_Date);<br />

Beispiel 2: Verwendung der UDF CvtDateToNum<br />

Seit Release V5R3M0 bietet SQL außerdem mit der skalaren Funktion EXTRACT das<br />

Pendant zum RPG Operation Code EXTRCT bzw. zur Built-in-Funktion %SUBDT(). Bei der<br />

skalaren Funktion EXTRACT muss die gewünschte Datums- oder Zeit-Einheit als YEAR,<br />

MONTH, DAY, HOUR, MINUTE, SECOND und anschließend ein Datum, eine Zeit oder<br />

Zeitmarke oder eine entsprechende gültige alphanumerische Darstellung angegeben werden.<br />

Die Funktion EXTRACT liefert das gleiche Ergebnis wie die einzelnen skalaren Funktionen,<br />

mit folgender Ausnahme:<br />

• Das Ergebnis für Sekunden wird im Format 8,6 ausgegeben, wobei in den Dezimalstellen<br />

die Mikrosekunden ausgegeben werden.<br />

• Mikro-Sekunden können nicht als Zeit-Einheit angegeben werden, sondern werden über<br />

www.inn-online.de < Seite > Seite: 48

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!