Ergebnis 1 bis 6 von 6

Thema: Rechnen mit Datumswerten

  1. #1
    JSpatz ist offline Benutzer
    Registriert seit
    19.05.2006
    Beiträge
    58

    Standard Rechnen mit Datumswerten

    Hi zusammen,

    ich bin gerade dabei eine Produktionsdatenbank uaf postgreSQL umzustellen und habe folgendes Problem:
    In einer Tabelle stehen Produktinszeiten für Artikel und in einer Übersicht soll ausgegeben werden, wann die Artikel fertig produziert wären, ab dem heutigen Datum.
    Als Formel geschrieben: Datum + (Menge*Zeit) ==> Ausgabe

    in meiner bisherigen Datenbank ging das relativ einfach:
    Select @now() + (Menge * ba_zykzeit/1440), ... FROM SYSADM.BA

    (In ba_zykzeit steht die Produktionszeit in Minuten)

    Mein erster Versuch in der Postgre war folgendes:
    Select current_timestamp + (Menge * ba_zykzeit/1440) FROM SYSADM.BA

    Aber da kommt nur die Menldung :
    ERROR: operator does not exist: timestamp with time zone + numeric

    Das Beispiel in der Doku habe ich gesehen, die arbeiten dort aber nur mit Konstanten Werten, z.B. Select current_timestamp + '5 day'
    oder so was, aber wie mache ich das mit variablen Werten aus einer Tabelle.

    Vielen Dank für die Hilfe

    JSpatz

  2. #2
    ap0477 ist offline Neuer Benutzer
    Registriert seit
    14.01.2006
    Ort
    Erfurt
    Beiträge
    6

    Standard

    Hallo,

    wahrscheinlich solltest du die Zykluszeit in einen Zeitwert umwandeln.

    Bsp.: SELECT time '1:30:00'*2;

    Sollte dir das nicht helfen erkläre bitte die Formel und deren Datentypen näher.

    mfg
    Andreas

  3. #3
    JSpatz ist offline Benutzer
    Registriert seit
    19.05.2006
    Beiträge
    58

    Standard Rechnen mit Datumswerten

    HI,

    anscheinend war die Erklärung zu ungenau:

    Also in der Datenbank steht in einem Feld die Zahl der Minuten als Integerwert

    In der alten DB (Gupta SQL-Base) kann man mit Datumswerten einfach rechnen:

    Datum + 1 = Ein Tag dazu
    Datum + 10 = Zehn Tage dazu
    Datum - 1 = Ein Tag zurück
    Datum + (1/24) ) = Eine Stunde vor
    Datum + (1/1440) = Eine Minute vor (24*60=1440)
    Datum + (X*(1/1440)) = X Minuten vor

    Usw.

    Die Formel sollte lauten:
    Datumswert[Timestamp] + (Menge[Int] * Zeit[Int] / 1440)[ergibt Tage] = Datumswert[Timestamp]

    Gruss JSpatz

  4. #4
    ap0477 ist offline Neuer Benutzer
    Registriert seit
    14.01.2006
    Ort
    Erfurt
    Beiträge
    6

    Standard

    Wie wäre es denn mit folgendem?

    SELECT now() + (5 * time'10:00:00'/1440);

    Gib bitte eine relevantes Beispiel und mögliche Werte für den "Zeit[Int]" Wert an.

  5. #5
    fristo ist offline Super-Moderator
    Registriert seit
    08.12.2005
    Ort
    Raum Frankfurt/Main
    Beiträge
    668

    Standard

    Hallo JSpatz,

    das funktioniert in PostgreSQL nicht so. Schau Dir mal Kapitel 9.9. 'Date/Time Functions and Operators' in der Doku an. Da sind auch Beispiele aufgeführt. Manchmal ist es auch notwendig einen Typ zu CASTEN!



    mfg

    fristo

  6. #6
    JSpatz ist offline Benutzer
    Registriert seit
    19.05.2006
    Beiträge
    58

    Standard Problem gelöst

    Danke,

    ich glaube jetzt hab ich's kapiert

    SELECT now() + (5 * time'00:01:00')

    liefert genau das gesuchte Ergebnis.
    Ich gebe dem Operator praktisch vor, dass die Fünf ein Wert in Minuten '00:01:00' oder Sekunden '00:00:01' oder Stunden '01:00:00' ist oder ?

    Ist schon eine ganz andere Denke, aber man muss sich halt umgewöhnen.

    Danke vielmals

    JSpatz

Ähnliche Themen

  1. Problem CONSTRAINT zu defi. von Datumswerten
    Von goldtime im Forum SQL
    Antworten: 6
    Letzter Beitrag: 09.01.2009, 09:50
  2. Rechnen mit Datumswerten / Geburtstage
    Von toni_83 im Forum SQL
    Antworten: 1
    Letzter Beitrag: 19.12.2008, 11:56
  3. Rechnen mit NULL-Wert
    Von byte im Forum SQL
    Antworten: 2
    Letzter Beitrag: 18.11.2007, 17:25
  4. "Rechnen" mit Oracle
    Von Christine im Forum SQL
    Antworten: 1
    Letzter Beitrag: 17.10.2007, 13:38

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