Etwas mehr Erklärung:
Uhrzeit '000000' ist eigentlich ein gültiger Wert und wird in SAP oft synonym für "nicht gesetzt" (oder IS INITIAL) verwendet was aber im Grunde falsch ist.
Erschwerend kommt dann noch hinzu, dass in Datenbanktabellen die von SAP aus gefüllt werden die Uhrzeiten automatisch mit '000000' befüllt werden anstatt (eigentlich richtigerweise) mit NULL wenn keine Uhrzeit vorhanden ist. Hier gibt es leider aber auch keine Möglichkeit das zu umgehen. Es kommt dann noch erschwerend hinzu, dass in SAP, für Datenbankfelder, die erst nachträglich hinzugefügt worden sind, für die bestehenden Datensätze die neuen Felder tatsächlich mit NULL initialisiert werden. Somit gibt es bei Uhrzeitfeldern eigentlich drei Möglichkeiten:
- NULL > neues Datenbankfeld bei altem Datensatz (in ABAP aber dann trotzdem 000000)
- 000000 > Leeres Daten(bank)feld
- 000000 > Wirklich 00:00:00
Wie rob_abc schon angemerkt hat, muss man hier auf einen anderen Datentyp ausweichen oder man baut sich eine Krücke.
Ich hab mal für ein Projekt den Umstand genutzt, dass in SAP '24:00:00' (intern) ein gültiger Wert ist und betrachte diesen eigentlich ungültigen Wert als den "Initialwert". Sprich, immer dann wenn '240000' in einem Feld steht ist es keine Uhrzeit und somit als "nicht gesetzt" zu betrachten. Da das dann aber relativ schnell bei diversen Auswertungen zu Misverständnissen und Problemen geführt hat, hab ich das dann auch gleich wieder gelassen.
Alternativ, was ich auch schon des öfteren gesehen habe, kann man sich auch mit einen zusätzlichen Datenbankfeld behelfen, wo man ein 'X' reinschreibt, wenn das zugehörige Uhrzeitfeld einen "echten" Wert hat. Aber auch hier muss man diesen Sonderfall einem nachgeschaltenen Controller irgendwie verständlich machen.
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