0

Erstellte Datensätze zwischen Uhrzeiten

Hallo Zusammen, 

ich habe mal wieder eine Frage, worauf es vermutlich eine simple Lösung gibt :) 

Ich würde gerne die erstellten Datensätze zwischen 7 Uhr und 19 Uhr sowie die zwischen 19 Uhr und 7 Uhr des nächsten Tages berechnen. 

 

Vielleicht kann ja wer helfen 🙂

7 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 2 Jahren
    • Gemeldet - anzeigen

    Hallo Patrick, verstehe ich das richtig: Du willst Datensätze anhand des Zeitstempels ihrer Erstellung zählen? Dann würde ich es so versuchen ...

    Von 7:00 bis 18:59 Uhr:

    cnt(select TABELLE where time(_cd) >= time(7,0,0) and time(_cd) < time(19,0,0))
    

    Von 19:00 bis 6:59 Uhr:

    cnt(select TABELLE where time(_cd) >= time(19,0,0) or time(_cd) < time(7,0,0))
    
      • Patrik_Ronschke
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro 

      Moin, genau so ist der Hintergedanke. 

      Irgendwo müssten wir dann nur noch ein today() einbauen, sodass quasi nur die "aktuellsten" ausgewertet werden. 

      Bedeutet ich möchte nur die Zahlen von

      heute 07:00 bis heute 18:59 

      und die Zahlen 

      heute 19:00 bis morgen 06:59 

       

      Und das dann immer Tagesaktuell.

      • Ninox-Professional
      • planoxpro
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Patrik Ronschke Man wird schwerlich Datensätze zählen können, die morgen erst erzeugt werden. ;)

      Aber ich ahne natürlich, was du meinst: Von 19:00 Uhr bis 6:59 Uhr am Folgetag, also Nachtschicht quasi. Man müsste allerdings ein Datum vorgeben, für das die Berechnung vorgenommen werden soll. Dazu ließe sich auch das Termin-Format nutzen:

      let myDay := appointment(datetime(date(DATUM), time(7, 0, 0)), datetime(date(DATUM), time(19, 0, 0)));
      cnt((select TABELLE)[_cd >= start(myDay) and _cd < endof(myDay)])
      

      bzw.

      let myNight := appointment(datetime(date(DATUM), time(19, 0, 0)), datetime(date(DATUM) + 1, time(7, 0, 0)));
      cnt((select TABELLE)[_cd >= start(myNight) and _cd < endof(myNight)])
      

      Hierbei muss man trotz "select" wieder mit eckigen Klammern arbeiten, aber das hatten wir an anderer Stelle ja schon.
       

      • Patrik_Ronschke
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro 

      Ja genau, das mit der Nachtschicht meine ich. 

      Cool wäre, wenn einfach die Daten der letzten Nachtschicht angezeigt werden oder einfach 0 dort steht. 

      • Ninox-Professional
      • planoxpro
      • vor 2 Jahren
      • Gemeldet - anzeigen

      Patrik Ronschke 

      Hm. So ganz klar ist mir nicht, was genau du wann wo angezeigt haben willst. Man kann DATUM natürlich auch durch today() -1, also "gestern" ersetzen, dann hat man die Zahl der letzten bzw. noch laufenden Nachtschicht:

      let myNight := appointment(datetime(date(today() - 1), time(19, 0, 0)), datetime(date(today()), time(7, 0, 0)));
      cnt((select TABELLE)[_cd >= start(myNight) and _cd < endof(myNight)])
      

      Das würde aber auch nach Beginn der neuen Nachtschicht um 19 Uhr angezeigt und erst ab 0 Uhr mit dem Datumswechsel die Werte der neuen Nachtschicht anzeigen. Man könnte zusätzlich bspw. auch noch die aktuelle Uhrzeit abfragen und je nachdem die letzte oder laufende berechnen. Oder mehrere Funktionsfelder mit verschiedenen Werten erstellen. Aber ich verstehe wie gesagt nicht genau, welche Information zu welchem Zeitpunkt an welcher Stelle benötigt wird.
       

      • Patrik_Ronschke
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro 

      Ja, das hatte ich auch schon überlegt. 

      Ich brauche quasi morgens um 7:00 die Anzahl der erstellen Datensätze vom Vortag 19:00 bis 06:59 und abends um 19:00 die Anzahl der erstellten Datensätze von 07:00 bis 19:00. 

      Im zweiten Fall könnte ich ja einfach today() einsetzten, dann wäre das schonmal gelöst. 

      Im ersten Fall dann mit today()-1 ?!? oder stehe ich auf dem Schlauch? 

      • Patrik_Ronschke
      • vor 2 Jahren
      • Gemeldet - anzeigen

      planox. pro 

      Ich habe das ganze nun wie folgt gelöst: 

      Code hinter dem Button: 

      if Auswahl_Uhrzeit = 1 then
          let myNight := appointment(datetime(date(today()), time(7, 0, 0)), datetime(date(today()), time(19, 0, 0)));
          let childm := cnt((select Testzyklus)[Personendaten.Geschlecht = 1 and age(Personendaten.Geburtsdatum) < 18 and 'Erstellt am' >= start(myNight) and 'Erstellt am' < endof(myNight)]);
          let childw := cnt((select Testzyklus)[Personendaten.Geschlecht = 2 and age(Personendaten.Geburtsdatum) < 18 and 'Erstellt am' >= start(myNight) and 'Erstellt am' < endof(myNight)]);
          'PAX Kinder' := cnt((select Testzyklus)[age(Personendaten.Geburtsdatum) < 18 and 'Erstellt am' >= start(myNight) and 'Erstellt am' < endof(myNight)]);
          'PAX männlich' := cnt((select Testzyklus)[Personendaten.Geschlecht = 1 and 'Erstellt am' >= start(myNight) and 'Erstellt am' < endof(myNight)]) - childm;
          'PAX weiblich' := cnt((select Testzyklus)[Personendaten.Geschlecht = 2 and 'Erstellt am' >= start(myNight) and 'Erstellt am' < endof(myNight)]) - childw;
          'Testungen Gesamt' := cnt((select Testzyklus)['Erstellt am' >= start(myNight) and 'Erstellt am' < endof(myNight)])
      else
          if Auswahl_Uhrzeit = 2 then
              let myDay := appointment(datetime(date(today() - 1), time(19, 0, 0)), datetime(date(today()), time(7, 0, 0)));
              let childm := cnt((select Testzyklus)[Personendaten.Geschlecht = 1 and age(Personendaten.Geburtsdatum) < 18 and 'Erstellt am' >= start(myDay) and 'Erstellt am' < endof(myDay)]);
              let childw := cnt((select Testzyklus)[Personendaten.Geschlecht = 2 and age(Personendaten.Geburtsdatum) < 18 and 'Erstellt am' >= start(myDay) and 'Erstellt am' < endof(myDay)]);
              'PAX Kinder' := cnt((select Testzyklus)[age(Personendaten.Geburtsdatum) < 18 and 'Erstellt am' >= start(myDay) and 'Erstellt am' < endof(myDay)]);
              'PAX männlich' := cnt((select Testzyklus)[Personendaten.Geschlecht = 1 and 'Erstellt am' >= start(myDay) and 'Erstellt am' < endof(myDay)]) - childm;
              'PAX weiblich' := cnt((select Testzyklus)[Personendaten.Geschlecht = 2 and 'Erstellt am' >= start(myDay) and 'Erstellt am' < endof(myDay)]) - childw;
              'Testungen Gesamt' := cnt((select Testzyklus)['Erstellt am' >= start(myDay) and 'Erstellt am' < endof(myDay)])
          end
      end
      

Content aside

  • Status Answered
  • vor 2 JahrenZuletzt aktiv
  • 7Antworten
  • 60Ansichten
  • 2 Folge bereits