Eine Datumsformel erstellen

In diesem Abschnitt:

Eine Datumsformel führt eine numerische Berechnung durch, die Daten enthält.

Eine Datumsformel gibt ein Datum, eine Datumskomponente oder eine ganze Zahl zurück, die für die Anzahl der Tage, Monate, Quartale oder Jahre zwischen zwei Daten steht. Sie können direkt eine Datumsformel schreiben, die besteht aus:


Nach oben

x
Formate für Datumswerte

Referenz:

Sie können mit Daten auf eine der zwei folgenden Weisen arbeiten:

Sie können ein Datum in einem Format in ein Datum in einem anderen Format zuweisen, indem Sie das eine einfach dem anderen zuweisen. Beispielsweise wird in den folgenden Zuweisungen ein Datum verwendet, das als ein alphanumerisches Feld gespeichert ist und mit Datumsbearbeitungsoptionen formatiert ist, und es wird in ein Datum umgewandelt, das als temporäres Datumsfeld gespeichert wird:

COMPUTE ALPHADATE/A6MDY = '120599' ;
        REALDATE/MDY = ALPHADATE;


x
Referenz: Ausgangsdaten für Datumsformate

In der folgenden Tabelle sehen Sie das Ausgangsdatum für jedes unterstützte Datumsformat:

Format

Ausgangsdatum

YMD, YYMD, MDYY, DMYY, MDY, and DMY

1900/12/31

YM, YYM, MYY, and MY

1901/01 auf z/OS

1900/12/31 auf Windows und UNIX

YQ, YYQ, QYY, and QY

1901 Q1

JUL and YYJUL

1900/365

D
M
Y, YY
Q
W

Es gibt für diese Formate kein Ausgangsdatum. Sie sind nur Zahlen, nicht Daten.

Beachten Sie, dass das Beachten Sie, dass, das für die Funktionen DA und DT verwendet wird, der 31. Dezember 1899 ist. Genaueres über Datumsfunktionen finden Sie im Handbuch Funktionen verwenden .



x
Referenz: Auswirkung von Datumsformate auf die Speicherung und die Anzeige

In der folgenden Tabelle wird veranschaulicht, wie sich das Feldformat auf Speicherung und Anzeige auswirkt:

 

Datumsformat (z. B.: MDYY)

Ganzzahliges, Gepacktes, Dezimales oder Alphanumerisches Format (z. B.: A8MDYY)

Wert

Gespeichert

Angezeigt

Gespeichert

Angezeigt

Februar 28, 1999

35853

02/28/1999

02281999

02/28/1999

März 1, 1999

35854

03/01/1999

03011999

03/01/1999



x
Berechnungen mit Daten durchführen

Das Format eines Feldes bestimmt, wie Sie es in einer Datumsformel verwenden können. Berechnungen mit Daten im Datumsformat können numerische Operatoren beinhalten und auch numerische Funktionen. Berechnungen mit Daten im Format Ganze Zahl, Gepackt, Dezimal oder Alphanumerisch erfordern die Verwendung von Datumsfunktionen. Numerische Operatoren geben eine Fehlermeldung oder ein falsches Ergebnis zurück.

Ihre Software wird mit einem vollständigen Funktionenset geliefert, was es Ihnen ermöglicht, Daten in den Formaten Ganze Zahl, Gepackte Dezimalzahl und Alphanumerisch zu manipulieren. Genaueres über Datumsfunktionen finden Sie im Handbuch Funktionen verwenden .



Beispiel: Daten berechnen

Angenommen Ihre Firma hat eine SHIPPING-Datenbank. Im folgenden Beispiel wird berechnet, wie viele Tage Ihre Versandabteilung benötigt, um eine Bestellung zu bearbeiten, indem das Datum, an dem der Artikel bestellt wurde (ORDER_DATE), von dem Datum subtrahiert wird, an dem er versendet wurde (SHIPDATE):

COMPUTE TURNAROUND/I4 = SHIP_DATE - ORDER_DATE;

Ein Artikel, der am 28. Februar 1999 bestellt wurde, und am 1. März 1999 versendet wurde, ergibt eine Differenz von einem Tag. Wenn jedoch die Felder SHIP_DATE und ORDER_DATE ein ganzzahliges Format haben, ist das Ergebnis der Berechnung (730000) falsch, da Sie den numerischen Operator Minus (-) nicht mit diesem Format verwenden können.

In der folgenden Tabelle sehen Sie, wie sich das Feldformat auf das Ergebnis auswirkt:

 

Wert im Datumsformat

Wert im Ganze Zahl-Format

SHIP_DATE = März 1, 1999

35854

03011999

ORDER_DATE = Februar 28, 1999

35853

02281999

TURNAROUND

1

730000

Um das korrekte Ergebnis zu erhalten, wenn Sie Felder in den Formaten Ganze Zahl, Gepackt, Dezimal oder Alphanumerisch verwenden, verwenden Sie eine Datumsfunktion (MDY), die die Differenz zwischen zwei Daten im Format Monat-Tag-Jahr zurückgibt. Mit der Funktion MDY können Sie TURNAROUND wie folgt berechnen:

COMPUTE TURNAROUND/I4 = MDY(ORDER_DATE, SHIP_DATE);


x
Jahrhundertübergreifende Daten mit DEFINE und COMPUTE

Sie können eine Formel in einem DEFINE- oder COMPUTE-Befehl verwenden, oder in einem DEFINE-Attribut in einer Masterdatei, die die Methode Gleitendes Fenster für die Verarbeitung von jahrhundertübergreifenden Daten verwendet. Mit den Parametern DEFCENT und YRTHRESH kann das Jahrhundert interpretiert werden, wenn die ersten zwei Stellen des Jahres nicht anderswo bereitgestellt werden. Wenn die ersten zwei Stellen bereitgestellt werden, werden sie einfach akzeptiert.

Genaueres über die Methode Gleitendes Fenster und die Verwendung von Formeln mit dieser Methode finden Sie unter Mit jahrhundertübergreifenden Daten arbeiten im Abschnitt Zusätzliche Dokumentation auf der WebFOCUS-Dokumentations-CD.


Nach oben

x
Auswahl des Formats des zurückgegebenen Feldes

Eine Datumsformel gibt immer eine Zahl zurück. Diese Zahl kann stehen für ein Datum oder die Anzahl der Tage, Monate, Quartale oder Jahre zwischen zwei Daten. Wenn Sie eine Datumsformel verwenden, um einem Feld einen Wert zuzuweisen, bestimmt das Format, das für das Feld ausgewählt wurde, wie das Ergebnis zurückgegeben wird.



Beispiel: Das Format eines zurückgegebenen Feldes auswählen

Berücksichtigen Sie die folgenden Befehle, vorausgesetzt SHIP_DATE und ORDER_DATE sind datumsformatierte Felder. Der erste Befehle berechnet, wie viele Tage Ihre Versandabteilung benötigt, um eine Bestellung zu bearbeiten, indem das Datum, an dem der Artikel bestellt wurde (ORDER_DATE), von dem Datum subtrahiert wird, an dem er versendet wurde (SHIP_DATE). Der zweite Befehl berechnet ein Lieferdatum, indem dem Datum, an dem die Bestellung versendet wurde, fünf Tage hinzugefügt werden.

COMPUTE TURNAROUND/I4 = SHIP_DATE - ORDER_DATE;
COMPUTE DELIVERY/MDY = SHIP_DATE + 5;

Im ersten Befehl gibt die Datumsformel die Anzahl der Tage zurück, die benötigt werden, um einen Auftrag zu erfüllen. Es muss daher das assoziierte Feld (TURNAROUND) ein Ganze Zahl-Format haben. Im zweiten Befehl gibt die Datumsformel das Datum zurück, an dem der Artikel geliefert wird. Es muss daher das assoziierte Feld (DELIVERY) ein Datumsformat haben.


Nach oben

x
Eine Datumskonstante in einer Formel verwenden

Wenn Sie eine Datumskonstante in einer Berechnung verwenden mit einem Feld in einem Datumsformat, müssen Sie sie in einfache Anführungszeichen setzen. Andernfalls wird sie interpretiert als die Anzahl der Tage zwischen der Konstanten und dem Basisdatum (31. Dezember 1900 oder 1. Januar 1901). Wenn beispielsweise 022899 nicht in Anführungszeichen gesetzt wird, wird der Wert als der 22899. Tag nach dem 31.12.1900 interpretiert, und nicht als der 28. Februar 1999.



Beispiel: Ein Feld mit einer Datumskonstante initialisieren

Der folgende Befehl initialisiert START_DATE mit der Datumskonstante 02/28/99:

COMPUTE START_DATE/MDY = '022899';

Der folgende Befehl berechnet die Anzahl der Tage, die seit dem 1. Januar 1999 verstrichen sind:

COMPUTE YEAR_TO_DATE/I4 = CURR_DATE - 'JAN 1 1999' ;

Nach oben

x
Eine Datumskomponente extrahieren

Zu Datumskomponenten gehören Tage, Monate, Quartale oder Jahre. Sie können eine Formel schreiben, die eine Komponente aus einem Feld in Datumsformat extrahiert. Sie können jedoch keine Formel schreiben, die Tage, Monate oder Quartale aus einem Datum extrahiert, das diese Komponenten nicht besitzt. Sie können beispielsweise keinen Monat aus einem Datum im Format YY extrahieren, das nur die Anzahl der Jahre darstellt.



Beispiel: Die Monatskomponente aus einem Datum extrahieren

Im folgenden Beispiel wird die Monatskomponente aus SHIP_DATE extrahiert, was das Format MDYY hat:

COMPUTE SHIP_MONTH/M = SHIP_DATE;

Wenn SHIP_DATE den Wert März 1, 1999 hat, gibt die obige Formel den Wert 03 für SHIP_MONTH zurück.

Eine Berechnung mit einer Datumskomponente erzeugt automatisch einen gültigen Wert für die gewünschte Komponente. Wenn beispielsweise der aktuelle Wert von SHIP_MONTH 03 lautet, gibt die folgende Formel richtigerweise den Wert 06 zurück:

COMPUTE ADD_THREE/M = SHIPMONTH + 3;

Wenn die Summe von Monaten zu einem Ergebnis führt, das größer als 12 ist, werden die Monate richtig angepasst (z. B. 11 + 3 ist 2, nicht 14).


Nach oben

x
Felder mit unterschiedlichen Formaten in einer Formel kombinieren

Wenn Sie Felder im Datumsformat verwenden, können Sie Felder mit unterschiedlicher Komponentenreihenfolge in derselben Formel kombinieren. Zusätzlich können Sie das Ergebnis einer Datumsformel einem Feld zuweisen, das eine andere Komponentenreihenfolge hat als die Felder in der Formel.

Sie können jedoch keine Formel schreiben, die Daten im Datumsformat mit Daten in den Formaten ganze Zahl, gepackt, dezimal oder Zeichen kombiniert.



Beispiel: Felder mit dem Format YYMD und MDY kombinieren

Betrachten wir die zwei Felder DATE_PAID und DUE_DATE. DATE_PAID hat das Format YYMD, und DUE_DATE hat das Format MDY. Sie können diese zwei Felder in einer Formel kombinieren, um die Anzahl der Tage zu berechnen, die eine Zahlung überfällig ist:

COMPUTE DAYS_LATE/I4 = DATE_PAID - DUE_DATE;


Beispiel: Einem zurückgegebenen Feld eine andere Komponentenreihenfolge zuweisen

Betrachten wir das Feld DATE_SOLD. Dieses Feld enthält das Datum, an dem ein Artikel verkauft wurde, im Format YYMD. Die folgende Formel fügt DATE_SOLD sieben Tage hinzu, um das letzte Datum zu bestimmen, an dem der Artikel zurückgegeben werden kann. Sie weist dann das Ergebnis einem Feld mit dem Format DMY hinzu:

COMPUTE RETURN_BY/DMY = DATE_SOLD + 7;

WebFOCUS