Announcement

Collapse
No announcement yet.

Firebird-Statement bringt error

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Firebird-Statement bringt error

    Hey Leute,

    folgender Teil eines Statements

    Code:
    extract(day from (dateadd(month,datediff(month from -1 to iif(t4.TE is null, t2.EIT, t4.TE)),-1)))
    bringt immer folgenden Fehler:

    Specified EXTRACT part does not exist in input datatype
    Wisst Ihr eine Alternative zu diesem Teil-Statement? Ist ein Part aus der Berechnung von Betriebszugehörigkeit von 2 Datumsfeldern.

    Oder habt ihr eine Alternative die auf Firebird läuft und Jahr, Monat und Tag ausgibt?

    Danke

    Erik

  • #2
    Originally posted by ny_unity View Post
    Code:
    extract(day from (dateadd(month,datediff(month from -1 to iif(t4.TE is null, t2.EIT, t4.TE)),-1)))
    die -1 ist vom falschen Typ, es muss auch ein Date sein, sofern Du wirklich 2 Datumswerte subtrahieren möchtest, Ergebnis ist dann eine Dezimalzahl (Tage Differenz)
    Insgesamt verstehe ich den Ausdruck nicht, daher kann ich auch nicht sagen, wie es anders laufen sollte.
    DateDiff arbeitet auf Basis von Date Typen und ergibt die Differenz der 2 Datums
    DateAdd arbeitet mit einem Datum und einem Zahlparameter, der addiert/subtrahiert wird.
    Gruß, defo

    Comment


    • #3
      Hey defo,

      danke für deine Antwort, das ganze Statement:

      Code:
      iif(extract(day from timestamp ''today'') > extract(day from iif(t4.TE is null, t2.EIT, t4.TE)), extract(day from timestamp ''today'')-extract(day from iif(t4.TE is null, t2.EIT, t4.TE))+1, extract(day from (dateadd(month,datediff(month from -1 to iif(t4.TE is null, t2.EIT, t4.TE)),-1))) - extract(day from iif(t4.TE is null, t2.EIT, t4.TE)) + extract(day from timestamp ''today'')) as TAGE
      habe extra mal alle einzelnen Statement nach Jahren, Monaten und Tagen getrennt, um Fehler genauer zu analysieren...

      gruß

      Erik

      Comment


      • #4
        Du hast mich falsch verstanden, ich wollte nicht mehr Statement sondern mehr Sinn.
        Das kurze Statement ergibt keinen Sinn für mich, da es offensichtlich falsch zusammengebaut ist, verlängern hilft da nichts.
        Schreib doch einfach mal, was Du berechnen willst
        so z.B.: Berechne die Differenz zwischen 1. Arbeitstag des aktuellen Monats und heute
        oder: Berechne den Wochentag des 1. Arbeitstages des aktuellen Monats
        Gruß, defo

        Comment


        • #5
          äh ok sorry...
          Ich möchte die Betriebszugehörigkeit der Mitarbeiter berechnen, anhand des eintrittsdatum mit Stichtag des heutigen Datum.
          Bestmöglich angezeigt in beispielsweise 10 Jahre, 4 Monate und 6 Tage.

          Meinst so? :-)

          Comment

          Working...
          X