Ergebnis 1 bis 3 von 3

Thema: Startzeitpunkt mithilfe von Interval

  1. #1
    Chuqa ist offline Benutzer
    Registriert seit
    25.01.2006
    Beiträge
    39

    Standard Startzeitpunkt mithilfe von Interval

    Hi,

    ich schreibe gerade an einem Trigger, der nach dem Einfügen eines Tupels in eine Tabelle ausgeführt werden soll. In dem Tupel gibt es einen Timestamp. Nun lese ich in dem Trigger aus einer anderen Tabelle einen Interval-Wert. Da könnte z.B. sowas wie "1 day" oder "01:00:00" stehen. Nun möchte ich mit dem Zeitwert des einzufügenden Tupels und dem Interval den Startzeitpunkt des Intervals bestimmen, d.h. wenn z.B. der Timestamp '2007-02-06 13:30:00' lautet und als Interval '01:00:00' ausgelesen wurde, so möchte ich einen Startzeitpunkt von '2007-02-06 13:00:00' erhalten. Wenn das Interval '1 day' sein würde, wäre der Startzeitpunkt '2007-02-06 00:00:00'. Kann mir jemand sagen wie ich das realisiere?

    gruß chuqa

  2. #2
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von Chuqa Beitrag anzeigen
    Hi,

    ich schreibe gerade an einem Trigger, der nach dem Einfügen eines Tupels in eine Tabelle ausgeführt werden soll. In dem Tupel gibt es einen Timestamp. Nun lese ich in dem Trigger aus einer anderen Tabelle einen Interval-Wert. Da könnte z.B. sowas wie "1 day" oder "01:00:00" stehen. Nun möchte ich mit dem Zeitwert des einzufügenden Tupels und dem Interval den Startzeitpunkt des Intervals bestimmen, d.h. wenn z.B. der Timestamp '2007-02-06 13:30:00' lautet und als Interval '01:00:00' ausgelesen wurde, so möchte ich einen Startzeitpunkt von '2007-02-06 13:00:00' erhalten. Wenn das Interval '1 day' sein würde, wäre der Startzeitpunkt '2007-02-06 00:00:00'. Kann mir jemand sagen wie ich das realisiere?

    gruß chuqa
    Allgemein gesehen sieht das nach der Fuktion date_trunc aus,
    http://www.postgresql.org/docs/8.1/i...DATETIME-TRUNC

    Allerdings: einmal willst Du angefangene Stunden abschneiden und einmal den Tag. Vielleicht kannst Du das dann mit CASE fallweise lösen:

    case when <interval> = '01:00:00'::interval then ...


    Aber willst Du wirklich exakte Daten durch ungenaue ersetzen? Vielleicht brauchst Du diese 'Rundung' nur in der Ausgabe bei bestimmten Auswertungen zur Grupppierung oder so. Vielleicht wäre es sinnvoller, dies im select zu machen und in der DB den genauen Wert gespeichert zu lassen.


    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    Chuqa ist offline Benutzer
    Registriert seit
    25.01.2006
    Beiträge
    39

    Standard

    Es werden ankommende Variablenwerte in einer Tabelle gespeichert, ungeordent usw, halt einfach ein Log. Nun soll der User sich Tabellen anlegen können in der nur die gewünschten Variablen mit ihren Werten gespeichert werden. Außerdem kann eine Regel angegeben werden, wie sie gespeichert werden und eben ein Intervall. Die Regeln können z.b. der Maximalwert, die Summe, der Mittelwert, usw. sein. Das Intervall kann z.b. auch 15min oder so etwas betragen. Wie detailiert sich das der User wählen können soll, darauf habe ich kein Einfluss, aber ein Intervall von 6min 27s mach sicherlich wenig Sinn. Ich müsste nun eben nur den Startzeitpunkt rausbekommen um dann die Werte ihrem entsprechendem Platz zuzuordnen.

    gruß chuqa

Ähnliche Themen

  1. postgres 8.1, extract(epoch from interval ...
    Von gfw im Forum Trigger und Funktionen
    Antworten: 1
    Letzter Beitrag: 24.07.2007, 07:52
  2. Datum Interval Berechnung
    Von hretif im Forum SQL
    Antworten: 2
    Letzter Beitrag: 15.05.2007, 13:39

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum