Ergebnis 1 bis 8 von 8

Thema: Wie multipliziere ich Datumswerte?

  1. #1
    ipConfig ist offline Erfahrener Benutzer
    Registriert seit
    21.02.2007
    Ort
    56072 Koblenz
    Beiträge
    125

    Standard Wie multipliziere ich Datumswerte?

    Servus,

    Ich bin gerade dabei einen import von altdaten zu übernehmen. Dabei muß ich einen Offset berechnen...

    ich versuche dabei folgendes zu bewerkstelligen:
    Code:
    select erfassungsdatum + '(6*5) day' from t_kv where nkvkey = 287
    Diese Zeile soll bewirken, dass zum erfassungsdatum 6*5 also 30 tage dazuaddiert werden. Wenn ich dies ausführe werden jedoch 11 tage dazuaddiert.
    In der Dokumentation steht folgendes Beispiel:
    Name Example Result
    * interval '1 hour' * int '3' interval '03:00'

    Also habe ich unter anderem folgendes versucht:
    Code:
    select erfassungsdatum + '6 day' * int '5' from t_kv where nkvkey = 287
    Dabei bekomme ich aber einen nichtsausagenden Fehler...
    Stelle: 0
    PostgreSQL:1No query has been executed with that handle

    Weiss jemand Rat?

    Gruß Ingo

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

    Standard

    Zitat Zitat von ipConfig Beitrag anzeigen
    Servus,

    Ich bin gerade dabei einen import von altdaten zu übernehmen. Dabei muß ich einen Offset berechnen...

    ich versuche dabei folgendes zu bewerkstelligen:
    Code:
    select erfassungsdatum + '(6*5) day' from t_kv where nkvkey = 287
    Diese Zeile soll bewirken, dass zum erfassungsdatum 6*5 also 30 tage dazuaddiert werden.

    Weiss jemand Rat?

    Gruß Ingo
    Code:
    test=# select current_date + ((6 * 5)||'days')::interval;
          ?column?
    ---------------------
     2007-10-11 00:00:00
    (1 row)
    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
    ipConfig ist offline Erfahrener Benutzer
    Registriert seit
    21.02.2007
    Ort
    56072 Koblenz
    Beiträge
    125

    Standard

    Danke für die schnelle Hilfe,

    Leider kommt unsere Programmiersprache nicht mit 2 Doppelpunkten hintereinander kar. Wir haben uns jetzt beholfen, indem wir mit Wochen arbeiten...

    Trotzdem Danke!

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

    Standard

    Zitat Zitat von ipConfig Beitrag anzeigen
    Danke für die schnelle Hilfe,

    Leider kommt unsere Programmiersprache nicht mit 2 Doppelpunkten hintereinander kar. Wir haben uns jetzt beholfen, indem wir mit Wochen arbeiten...

    Trotzdem Danke!
    Ohne Doppelpunkte:

    Code:
    test=# select current_date + cast(((6 * 5)||'days') as interval);
          ?column?
    ---------------------
     2007-10-11 00:00:00
    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

  5. #5
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Zitat Zitat von ipConfig Beitrag anzeigen
    Leider kommt unsere Programmiersprache nicht mit 2 Doppelpunkten hintereinander kar.
    Hä? Was habt ihr denn da am laufen ...
    Ausserdem: den Query setzt man (hoffentlich) als String zusammen und da sollte es ja egal sein, wieviele Doppelpunkte im String stehen ...
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  6. #6
    ipConfig ist offline Erfahrener Benutzer
    Registriert seit
    21.02.2007
    Ort
    56072 Koblenz
    Beiträge
    125

    Standard

    Naja bei unserer Programmiersprache nicht

    Dort ist ein Doppelpunkt ein Sonderzeichen, um anzuzeigen, dass das Resultset der Abfrage in eine Bindvariable übergeben wird. Bindvariablen sind lokale variablen einer Funktion innerhalb derer ich die SQL abfrage mache.

    Beispiel


    SQLPrepareAndExecute( cursorhandle, "Selct XY from tabelle into :nKey" )

    Damit wird Der Inhalt von XY in die lokale variable "nKey" geschrieben.
    Bei einem doppelten : ist unsere Sprache dann aufgeschmissen...

    Trotzdem Danke!

  7. #7
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Na ja, nicht ganz aufgeschmissen, aber das CAST() als Funktion berechnen wir dir extra.

    PostgreSQL: Documentation: Manuals: PostgreSQL 8.2: Value Expressions

    Abschnitt 4.2.8
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  8. #8
    ipConfig ist offline Erfahrener Benutzer
    Registriert seit
    21.02.2007
    Ort
    56072 Koblenz
    Beiträge
    125

    Standard

    Hab ich schon gelesen:

    akretschmer am 11.09.2007 10:16

    trotzdem Danke für die Mühe! Ebenso an akretschmar!

    Ohne eure schnelle und gute hilfe wäre ich und die meisten anderen Benutzer wirklich sehr aufgeschmissen!

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