Ansicht
Dokumentation

ABENCDS_DATE_FUNCTIONS_V1 - CDS DATE FUNCTIONS V1

ABENCDS_DATE_FUNCTIONS_V1 - CDS DATE FUNCTIONS V1

PERFORM Short Reference   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- DDIC-basierte View, Datumsfunktionen

... DATN_DAYS_BETWEEN(date1,date2)
  $| DATN_ADD_DAYS(date,days)
  $| DATN_ADD_MONTHS(date,months)
  $| DATS_IS_VALID(date)
  $| DATS_DAYS_BETWEEN(date1,date2)
  $| DATS_ADD_DAYS(date,days,on_error)
  $| DATS_ADD_MONTHS(date,months,on_error) ...


Varianten:

1. ... DATN_DAYS_BETWEEN(date1,date2)

2. ... DATN_ADD_DAYS(date,days)

3. ... DATN_ADD_MONTHS(date,months)

4. ... DATS_IS_VALID(date)

5. ... DATS_DAYS_BETWEEN(date1,date2)

6. ... DATS_ADD_DAYS(date,days,on_error)

7. ... DATS_ADD_MONTHS(date,months,on_error)

Wirkung

Diese Funktionen führen in einer Operationen mit Argumenten der eingebauten Datentypen DATN und DATS aus. Die Funktionen haben Positionsparameter, denen beim Aufruf Aktualparameter zugeordnet werden müssen. Es gibt derzeit keine optionalen Parameter. Als Aktualparameter können passende Felder einer Datenquelle, Literale, Parameter, Pfadausdrücke, eingebaute Funktionen oder Ausdrücke angegeben werden. An den Parameter on_error können ausschließlich Literale übergeben werden. Wenn ein Aktualparameter den Null-Wert enthält, gibt jede Funktion außer DATS_IS_VALID einen Null-Wert zurück.

Hinweis

Über die Sitzungsvariable $session.system_date besteht in einer CDS-View direkter Zugriff auf das aktuelle Systemdatum. Außerdem ermöglicht eine spezielle Annotation @Environment.systemField die implizite Übergabe des Werts des ABAP-Systemfelds sy-datum an Eingabeparameter.

Variante 1

... DATN_DAYS_BETWEEN(date1,date2)


Wirkung

Die Funktion DATN_DAYS_BETWEEN berechnet die Differenz zweier Datumsangaben date1 und date2 in Tagen. Die Aktualparameter müssen vom eingebauten Datentyp DATN sein und müssen ein gültiges Datum im Format YYYYMMDD enthalten. Das Ergebnis ist vom Datentyp INT4. Wenn date2 größer als date1 ist, ist das Ergebnis positiv. Andernfalls ist das Ergebnis negativ. Wenn das Ergebnis außerhalb des Wertebereiches der gültigen Daten liegt, tritt ein Fehler auf.

Hinweise

  • Leere Literale sind nicht möglich.
  • Bei Zuweisung der literalen Eingabe '00000000‘ wird ein Aktualparameter auf den Initialwert gesetzt und es wird der Wert "00010101“ für die Berechnung benutzt.
  • Die fehlenden Tage des Gregorianischen Kalenders (5.10.1582 bis 15.10.1582) werden wie üblich im ABAP behandelt.

Variante 2

... DATN_ADD_DAYS(date,days)


Wirkung

Die Funktion DATN_ADD_DAYS addiert days Tage auf eine Datumsangabe date.

  • Der Aktualparameter date muss vom eingebauten Datentyp DATN sein und muss ein gültiges Datum im Format YYYYMMDD enthalten.
  • Der Aktualparameter days muss vom eingebauten Datentyp INT4 sein.

Das Ergebnis ist vom Datentyp DATN. Wenn days positiv ist, wird die Anzahl der Tage zu date addiert. Andernfalls wird die Anzahl der Tage abgezogen. Wenn die Berechnung zu einem ungültigen Datum führt, tritt ein Fehler auf.

Hinweise

  • Literale sind für den Parameter date nicht möglich.
  • Die fehlenden Tage des Gregorianischen Kalenders (5.10.1582 bis 15.10.1582) werden wie üblich im ABAP behandelt.

Variante 3

... DATN_ADD_MONTHS(date,months)


Wirkung

Die Funktion DATN_ADD_MONTHS addiert months Monate auf eine Datumsangabe date.

  • Der Aktualparameter date muss vom eingebauten Datentyp DATN sein und muss ein gültiges Datum im Format YYYYMMDD enthalten.
  • Der Aktualparameter months muss vom eingebauten Datentyp INT4 sein.

Das Ergebnis ist vom Datentyp DATN. Wenn months positiv ist, wird die Anzahl der Monate zu date addiert. Andernfalls wird die Anzahl der Monate abgezogen.

Es wird versucht ein Datum mit dem gleichen Tag in einem entsprechend früheren oder späteren Monat zu bilden. Wenn der Zielmonat weniger Tage als der Quellmonat hat, wird der letzte Tag des Zielmonats zurückgegeben. Wenn die Berechnung zu einem ungültigen Datum führt, tritt ein Fehler auf.

Hinweise

  • Literale sind für den Parameter date nicht möglich.
  • Die fehlenden Tage des Gregorianischen Kalenders (5.10.1582 bis 15.10.1582) werden wie üblich im ABAP behandelt.

Variante 4

... DATS_IS_VALID(date)


Wirkung

Die Funktion DATS_IS_VALID stellt fest, ob eine Datumsangabe date ein gültiges Datum im Format YYYYMMDD enthält. Der Aktualparameter muss vom eingebauten Datentyp DATS sein. Das Ergebnis ist vom Datentyp INT4. Ein gültiges Datum ergibt den Wert 1 alle anderen Eingabewerte inklusive des Null-Werts ergeben den Wert 0.

Hinweis

Der Wert "00010101" ist ein gültiges Datum, der Wert "00000000" aber nicht.

Variante 5

... DATS_DAYS_BETWEEN(date1,date2)


Wirkung

Die Funktion DATS_DAYS_BETWEEN berechnet die Differenz zweier Datumsangaben date1 und date2 in Tagen. Die Aktualparameter müssen vom eingebauten Datentyp DATS sein und sollten ein gültiges Datum im Format YYYYMMDD enthalten. Ungültige Datumsangaben werden vor der Berechnung initialisiert bzw. auf den Wert "00010101" gesetzt. Das Ergebnis ist vom Datentyp INT4. Wenn date2 größer als date1 ist, ist das Ergebnis positiv. Andernfalls ist das Ergebnis negativ.

Hinweis

Vor der Berechnung der Differenz werden die Datumsangaben wie in ABAP in ganze Zahlen konvertiert und es gelten die entsprechenden Regeln.

Variante 6

... DATS_ADD_DAYS(date,days,on_error)


Wirkung

Die Funktion DATS_ADD_DAYS addiert days Tage auf eine Datumsangabe date.

  • Der Aktualparameter date muss vom eingebauten Datentyp DATS sein und sollte ein gültiges Datum im Format YYYYMMDD enthalten. Eine ungültige Datumsangabe wird vor der Berechnung initialisiert bzw. auf den Wert "00010101" gesetzt.
  • Der Aktualparameter days muss vom eingebauten Datentyp INT4 sein.
  • Der Aktualparameter on_error muss vom eingebauten Datentyp CHAR der Länge 10 sein und muss einen der folgenden Werte haben:
  • "FAIL", ein Fehler führt zu einer Ausnahme

  • "NULL", ein Fehler führt zur Rückgabe des Null-Werts

  • "INITIAL" ein Fehler führt zur Rückgabe des Initialwerts

  • "UNCHANGED" ein Fehler führt zur Rückgabe des unveränderten Werts von date

Die Groß-/Kleinschreibung wird berücksichtigt. Ein falsch angegebener Wert führt zu einer Ausnahme.

Das Ergebnis ist vom Datentyp DATS. Wenn days positiv ist, wird die Anzahl der Tage zu date addiert. Andernfalls wird die Anzahl der Tage abgezogen. Wenn die Berechnung zu einem ungültigen Datum führt, wird eine Fehlerbehandlung gemäß der Angabe in on_error durchgeführt.

Hinweis

Für die Berechnung wird die Datumsangabe intern wie in ABAP in eine ganze Zahl konvertiert und das Ergebnis wieder in ein Datum konvertiert und es gelten die entsprechenden Regeln.

Variante 7

... DATS_ADD_MONTHS(date,months,on_error)


Wirkung

Die Funktion DATS_ADD_MONTHS addiert months Monate auf eine Datumsangabe date.

  • Der Aktualparameter date muss vom eingebauten Datentyp DATS sein und sollte ein gültiges Datum im Format YYYYMMDD enthalten. Eine ungültige Datumsangabe wird vor der Berechnung initialisiert bzw. auf den Wert "00010101" gesetzt.
  • Der Aktualparameter months muss vom eingebauten Datentyp INT4 sein.
  • Für den Aktualparameter on_error gilt das Gleiche wie bei DATS_ADD_DAYS.

Das Ergebnis ist vom Datentyp DATS. Wenn months positiv ist, wird die Anzahl der Monate zu date addiert. Andernfalls wird die Anzahl der Monate abgezogen.

Es wird versucht ein Datum mit dem gleichen Tag in einem entsprechend früheren oder späteren Monat zu bilden. Wenn der maximal mögliche Tag eines Monats überschritten wird, wird der höchstmögliche Tag verwendet. Wenn die Berechnung zu einem ansonsten ungültigen Datum führt, wird eine Fehlerbehandlung gemäß der Angabe in on_error durchgeführt.

Beispiel

Die folgende CDS-View wendet Datumsfunktionen in der SELECT-Liste auf Spalten der DDIC-Datenbanktabelle DEMO_EXPRESSIONS an. Das Programm DEMO_CDS_DATE_FUNCTIONS greift mit SELECT auf die View zu. Die Spalten DATN1, DATN2, DATS1 und DATS2 der Datenbanktabelle und die Aktualparameter für die Eingabeparameter der View können mit beliebigen Werten versehen werden. Ungültige Werte oder Werte, die zu ungültigen Ergebnissen führen, werden bei DATS_ADD_DAYS und DATS_ADD_MONTHS gemäß der in der View definierten Fehlerbehandlung behandelt.






BAL_S_LOG - Application Log: Log header data   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 19137 Date: 20240523 Time: 170703     sap01-206 ( 222 ms )