Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
merry2018
Creator III
Creator III

Wie im Script die Zeit in 3 Bereiche einteilen?

Hallo Zusammen,

ich hätte da noch eine Frage an euch, und zwar habe ich ein Feld 'Zeit' (z. B. 10.04.2017 11:45:20) und Formatiere dieses in eine reine Zeit um damit dann weiter zu arbeiten, mit folgender Formel (im Script):

time(Zeit, 'hh:mm') as %_Zeit;

und erhalte dann die Uhrzeit: 11:45.

Diese möchte ich jetzt eigentlich in Früh, Spät und Nachtschicht einteilen, welches ich zuerst mal in zwei Bereiche versucht habe einzuteilen, da es in 3 noch nicht klappt. Und zwar mit folgendem Code im Script, in einem vorangehendem Load:

LOAD

*,

if(%_Zeit > '08:31' , 'F' ,  'x') as Schicht;

Wenn dieses dann vom Prinzip her klappt, dachte ich an etwa folgendes für 3 Bereiche:

LOAD

*,

if(%_Zeit > '08:31' and %_Zeit < '13:30', 'F' ,

  if(%_Zeit < '13:31' and %_Zeit < '21:30', 'S','N')) as Schicht;

Wo habe ich einen Fehler oder warum klappt es nicht, denn es bringt bei dem ersten Versuch immer komplett F oder komplett x, obwohl ich Zeiten von 6:00, 7:00 und auch 9:00, 10:00 usw. hab.

Freue mich über jede Hilfe oder Tipp wie ich es noch versuchen könnte.

Gruß Merry

1 Solution

Accepted Solutions
merry2018
Creator III
Creator III
Author

Hab es nun hinbekommen, indem ich die Umwandlung mit eine Punkt "." statt Doppelpunkt ":" gemacht habe, also folgend:

time(Zeit, 'hh.mm') as %_Zeit; 

und dann auch in der Abfrage dieses ausgetauscht und nun funktioniert es.

Trotzdem Danke der Hilfe.

View solution in original post

7 Replies
tamilarasu
Champion
Champion

Hi Mer ry,

Try,

LOAD

*,

if(%_Zeit > '08:31' and %_Zeit < '13:30', 'F' ,

if(%_Zeit > '13:31' and %_Zeit < '21:30', 'S','N')) as Schicht;

merry2018
Creator III
Creator III
Author

Nein leider ergibt es immer 'N'.

tamilarasu
Champion
Champion

Könnten Sie eine Beispieldatei anhängen? 

swuehl
MVP
MVP

Um die Uhrzeit von einem Datum/Zeit-Wert abzutrennen, muss die Frac-Funktion benutzt werden:

time(Frac(Zeit), 'hh:mm') as %_Zeit


Time() formatiert nur den Text eines Wertes, entfernt aber nicht das Datum aus dem zugrundeliegenden numerischen Wert. Das hätte allerdings auch bei dem Skript mit zwei Werten zu Problemen führen sollen.

edit: deutsch-sprachiche Anfragen bitte in der deutschen Gruppe stellen

German User Group - Deutsche User Group

merry2018
Creator III
Creator III
Author

Hab es nun hinbekommen, indem ich die Umwandlung mit eine Punkt "." statt Doppelpunkt ":" gemacht habe, also folgend:

time(Zeit, 'hh.mm') as %_Zeit; 

und dann auch in der Abfrage dieses ausgetauscht und nun funktioniert es.

Trotzdem Danke der Hilfe.

tamilarasu
Champion
Champion

Ich bin mir nicht sicher, wie es funktioniert. Wie auch immer du sagst, es funktioniert so gut. Einen schönen Tag noch!

merry2018
Creator III
Creator III
Author

Ja das klappt so jetzt auch, Danke.

Bei den zwei Werten hatte es ja genauso wenig funktioniert, ich hatte dies nur als ersten Schritt versucht um andere Fehler in der Bedingungs-Bildung auszuschließen.

Danke für den Hinweis, ich wusste nicht das dieses hier eine Englische gruppe ist.