TIMESTAMP 15 vs. 14 Zeichen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

TIMESTAMP 15 vs. 14 Zeichen

Beitrag von sapdepp (Specialist / 218 / 37 / 2 ) »
Guten Tag,

weiß jemand, weswegen der Datentyp timestamp eine Länge von 15 Zeichen hat, obwohl nur 14 benötigt werden? Es gibt hier im Forum einen ähnlichen Beitrag, wo u. a. vermutet wird, dass sich SAP auf 5-stellige Jahreszahlen vorbereitet hat. ;) Ein negatives Vorzeichen kommt ja bei Datumsangaben hier nicht infrage. Das fehlende (Leer-)Zeichen würde ganz rechts am timestamp hängen, quasi als Platzhalter, richtig?

Vielen Dank und viele Grüße

sapdepp

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: TIMESTAMP 15 vs. 14 Zeichen

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Da es sich um ein DEC Feld handelt (Kein Mensch weiß warum) wäre das Leerzeichen LINKS zu sehen.

Meine einzige Vermutung für die Verwendung von DEC ist, dass die SAP sich an den UNIX-Timestamp halten wollte. Wenn sie sich dann wenigstens auch an das Verhalten wie bei D und T für Datums- und Zeit-Berechnungen gehalten hätten, wäre das ja durchaus sinnvoll gewesen. So in dieser Form ist das Ganze aber eher eine Krücke als eine Verbesserung gegenüber getrennten Datums- und Zeitfeldern. Gerade wenn man sich D und T anschaut, die ja im Grunde N entsprechen, wäre meines Erachtens auch für die Zeitstempel ein N in Länge 14 besser gewesen, auch weil man es dann z.B. in Schlüsselfeldern für das Transportwesen verwenden hätte können.

Die Länge von 15 statt 14 dürfte mit der internen Längenberchnung von BCD Feldern zusammenhängen. Da kann es nämlich sein, dass mit einer (Byte-)Länge von 14 doch nicht alle Zahlen dargestellt werden können die man möchte.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
sapdepp

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: TIMESTAMP 15 vs. 14 Zeichen

Beitrag von black_adept (Top Expert / 4098 / 128 / 941 ) »
a-dead-trousers hat geschrieben:
04.11.2022 09:19
Die Länge von 15 statt 14 dürfte mit der internen Längenberechnung von BCD Feldern zusammenhängen. Da kann es nämlich sein, dass mit einer (Byte-)Länge von 14 doch nicht alle Zahlen dargestellt werden können die man möchte.
Die Begründung ist etwas anders. Gepackte Zahlen haben ja eine interne Länge von n Bytes. Und da immer ein Vorzeichen vorgesehen ist und eine Ziffer von 0-9 nur ein Halbbyte benötigt, ergibt sich die Anzahl der Ziffern damit auf 2*n-1 Ziffern.

Jetzt kann man zwar im DDIC eine gepackte Zahl mit einer geraden Anzahl m von Ziffern definieren, aber intern werden dafür wegen des Vorzeichens dann m/2+1 Bytes benötigt. Und damit hat man dann ein Halbbyte übrig, so dass man mit der intern definierten Domäne eben auch eine Zahl mit m+1 Ziffern darstellen könnte.
Das geht so weit, dass man eine Domäne mit 4 Ziffern und 0 Nachkommastellen definieren kann, auf die im Programm eine Variable über ein Datenelement typisiert wird. Man kann dann der Variablen den Wert '11111' ( 5 Ziffern ) zuweisen und SAP verarbeitet das klaglos. ( Weder Syntaxfehler noch Dump ! )
Somit sind eigentlich DEC-Domänen mit gerader Anzahl von Ziffern eher verwirrend, so dass ich die Verlängerung der Timestampfelder gutheiße. Jetzt würde ich ja behaupten, dass SAP das genau so sieht und deshalb das gemacht hat. Aber wenn man bedenkt wie viele DEC-Domänen SAP selber mit gerader Anzahl von Stellen anlegt, traue ich ihnen diese Vorausschau doch eher nicht zu. Vielleicht Einzelnen dort...

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
sapdeppa-dead-trousers

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

2
Antw.
3504
Views
Timestamp
von errorist » 09.07.2008 13:36 • Verfasst in ABAP® für Anfänger
8
Antw.
4757
Views
Timestamp vs GetTime
von cut1 » 11.01.2006 11:39 • Verfasst in ABAP® Core
5
Antw.
2194
Views
Timestamp Kalkulation
von Lbyte » 27.11.2017 15:43 • Verfasst in ABAP® für Anfänger
5
Antw.
20212
Views
Konvertierung Timestamp
von jeyloeso » 24.10.2012 08:40 • Verfasst in ABAP® für Anfänger
1
Antw.
4486
Views
Zeitstempel TIMESTAMP und TIMESTAMPL
von KleinerEisbaer » 15.09.2008 12:53 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Programm anlegen mit Vorlage
vor 2 Stunden von DeathAndPain 2 / 45
IT0024 Qualifikationen CP-ID
vor 2 Stunden von DeathAndPain 2 / 291
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Stunden von snooga87 1 / 34
Bedarfszusammenfassung "Einzelbedarfe"
vor 6 Stunden von harri 2 / 1221

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Programm anlegen mit Vorlage
vor 2 Stunden von DeathAndPain 2 / 45
IT0024 Qualifikationen CP-ID
vor 2 Stunden von DeathAndPain 2 / 291
BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Stunden von snooga87 1 / 34
Bedarfszusammenfassung "Einzelbedarfe"
vor 6 Stunden von harri 2 / 1221

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 4 Stunden von snooga87 1 / 34
aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3213
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9803