Uhrzeit ist leer Abfrage

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Uhrzeit ist leer Abfrage

Beitrag von Bright4.5 (Specialist / 298 / 21 / 1 ) »
Hallo zusammen,

ganze kurze Frage.

Wie kann man den eine leere Uhrzeit abfragen?

Ich hätte in einer DB-Tabelle 2 Felder mit Beginnuhrzeit und Enduhrzeit drin.

Diese greife ich ab. Leider sind diese oft nicht gefüllt und ich bekomme in der Variablen dann "NULL00".

Ich wollte es nun so abfragen:

if lv_beguz is INITIAL.

endif.

Leider funktioniert das so nicht :/.

Weiß jemand wie man so etwas abfrägt, bei der Uhrzeit, wenn diese leer ist?

Vielen Dank im Voraus.

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


Re: Uhrzeit ist leer Abfrage

Beitrag von rob_abc (Specialist / 125 / 33 / 50 ) »
Das geht gar nicht. Uhrzeit enthält auf der DB immer einen Wert. Wird beim CREATE keiner mitgegeben, wird '000000' eingetragen. Eine Prüfung auf diesen Wert würde aber die durchaus gültigen Werte für Mitternacht ungültig machen.
Es muss mit anderen Datentypen gearbeitet werden, wenn man auf leer prüfen können möchte, nicht mit TIMS.

Re: Uhrzeit ist leer Abfrage

Beitrag von a-dead-trousers (Top Expert / 4445 / 226 / 1196 ) »
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

Seite 1 von 1

Vergleichbare Themen

2
Antw.
10124
Views
Write Uhrzeit
von ABAP_BEGINNER » 04.06.2010 14:50 • Verfasst in ABAP® für Anfänger
1
Antw.
1339
Views
Excel Einlesen Uhrzeit Format
von SaskuAc » 08.02.2018 10:28 • Verfasst in ABAP® für Anfänger
3
Antw.
2379
Views
Uhrzeit eingeben in ALV-Grid-Liste
von SkyHobbit » 09.09.2005 07:16 • Verfasst in ABAP® für Anfänger
4
Antw.
3539
Views
Plausibilitätsprüfung bei Datum + Uhrzeit umgehen
von Hubi1977 » 21.03.2013 10:46 • Verfasst in Dialogprogrammierung
0
Antw.
2032
Views
Meldung abschließen: Bezugsdatum/-uhrzeit woher
von toto » 14.08.2007 08:41 • Verfasst in Sonstige Module

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.