Ansicht
Dokumentation

ABENCONVERSION_TYPE_D - CONVERSION TYPE D

ABENCONVERSION_TYPE_D - CONVERSION TYPE D

BAL Application Log Documentation   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Quellfeldtyp d

Die Konvertierungsregeln sind so gestaltet, dass sich Datenobjekte vom Datumstyp d bei der Zuweisung an zeichenartige Datenobjekte zeichenartig und bei der Zuweisung an numerische Datenobjekte numerisch verhalten. Letzteres ist die Grundlage für Datumsberechnungen in arithmetischen Ausdrücken.

Gültige Daten für Datenobjekte vom Typ d sind nur Datumsangaben im Format "yyyymmdd", wobei der "00010101" der erste gültige Wert ist. Die Konvertierungsregeln erlauben zwar auch Zuweisungen von Datumsfeldern, die ungültige Daten enthalten. Letzteres ist nicht empfohlen.

Numerische Zielfelder

Ziel Konvertierung
i, int8, (b, s) Wenn das Quellfeld ein gültiges Datum im Format "yyyymmdd" enthält, wird daraus die Anzahl der Tage seit 01.01.0001 berechnet und dieser Wert in die interne Darstellung der entsprechenden Integerzahl konvertiert. Wenn das Quellfeld ein ungültiges Datum enthält, erhält das Zielfeld den Wert 0. Wenn der Wertebereich der internen Datentypen i, b oder s überschritten wird, kommt es zur behandelbaren Ausnahme CX_SY_CONVERSION_OVERFLOW.
p Wenn das Quellfeld ein gültiges Datum im Format "yyyymmdd" enthält, wird daraus die Anzahl der Tage seit 01.01.0001 berechnet und dieser Wert in die interne Darstellung einer gepackten Zahl konvertiert. Wenn der Wertebereich des Zielfelds zu klein ist, kommt es zur behandelbaren Ausnahme CX_SY_CONVERSION_OVERFLOW. Wenn das Quellfeld ein ungültiges Datum enthält, erhält das Zielfeld den Wert 0.
decfloat16, decfloat34 Wenn das Quellfeld ein gültiges Datum im Format "yyyymmdd" enthält, wird daraus die Anzahl der Tage seit 01.01.0001 berechnet und dieser Wert in die interne Darstellung einer dezimalen Gleitpunktzahl mit der Skalierung 0 konvertiert. Wenn das Quellfeld ein ungültiges Datum enthält, erhält das Zielfeld den Wert 0.
f Wenn das Quellfeld ein gültiges Datum im Format "yyyymmdd" enthält, wird daraus die Anzahl der Tage seit 01.01.0001 berechnet und dieser Wert in die interne Darstellung einer binären Gleitpunktzahl konvertiert. Wenn das Quellfeld ein ungültiges Datum enthält, erhält das Zielfeld den Wert 0.

Hinweise

  • Die Konvertierung eines Datums in die Anzahl der Tage seit dem 01.01.001 ist so gestaltet, dass die Umstellung vom Julianischen zum Gregorianischen Kalender wie folgt berücksichtigt wird: Der 4.10.1582 ergibt die Zahl 577.736, der 15.10.1582 ergibt die Zahl 577.737. Eine Konvertierung von Datumsangaben für die eigentlich nicht vorhandenen Tage vom 5.10.1582 bis zum 14.10.1582 ergibt die gleichen Ergebnisse wie die Konvertierung der vorhandenen Tage vom 15.10.1582 bis zum 24.10.1582.
  • Die Zuweisung der Werte "00000000" und "00010101" an einen numerischen Typ ergeben beide den Wert 0. Die Zuweisung des Wertes 0 an ein Datumsfeld ergibt "00000000". Die Zuweisung des Wertes "00010101" an einen numerischen Typ ist also nicht umkehrbar.

Das Ergebnis der folgenden Konvertierung hat den Wert 736341. Dies ist die Anzahl Tage des angegebenen Datums seit 01.01.0001.

Zeichenartige Zielfelder

Ziel Konvertierung
c Der Inhalt wird wie bei einem Quellfeld vom Typ c behandelt.
n Die Zeichen des Quellfelds werden linksbündig in das Zielfeld gestellt. Schließende Leerzeichen des Quellfelds werden übertragen. Wenn das Zielfeld länger als das Quellfeld ist, wird rechts mit den Zeichen "0" aufgefüllt. Ist das Zielfeld kürzer, wird rechts abgeschnitten.
string Der Inhalt wird wie bei einem Quellfeld vom Typ c behandelt.

Die aus der Konvertierung resultierende Zeichenkette ist 2017. Rechts werden vier Zeichen 0111 abgeschnitten.

Byteartige Zielfelder

Ziel Konvertierung
x Der Inhalt des Quellfelds wird erst in den Datentyp i (siehe oben) und dann in den Typ x konvertiert (siehe Konvertierungstabelle für Quellfeld Typ i, int8, (b, s)).
xstring Der Inhalt des Quellfelds wird erst in den Datentyp i (siehe oben) und dann in den Typ xstring konvertiert (siehe Konvertierungstabelle für Quellfeld Typ i, int8, (b, s)).

Die aus der Konvertierung resultierende Bytekette ist 0B3C55. Sie entsprechen der Integerzahl 736341 bzw. der Anzahl der Tage seit 01.01.0001.

Datums-/Zeitfelder als Zielfelder

Ziel Konvertierung
d Der Inhalt des Quellfelds wird unkonvertiert übertragen.
t Nicht unterstützt. Führt zu einem Syntax- oder Laufzeitfehler.
utclong Nicht unterstützt. Führt zu einem Syntaxfehler oder zur Ausnahme CX_SY_CONVERSION_NOT_SUPPORTED.

Beispiel

Die statisch nicht erkennbare Konvertierung von d nach t wird nicht unterstützt und führt zum Laufzeitfehler MOVE_NOT_SUPPORTED.






rdisp/max_wprun_time - Maximum work process run time   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8112 Date: 20240523 Time: 183219     sap01-206 ( 125 ms )