Announcement

Collapse
No announcement yet.

Tag des Jahres aus einem datum zurück bekommen

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

  • Tag des Jahres aus einem datum zurück bekommen

    ich möchte mit diesem befehl tag des jahres herausbekommen.
    und das ergebnis modulo 7.
    leider haut es nicht hin. bekomme einen diese fehlermeldung
    ORA:01821: date format not recognized

    PHP Code:
    select modto_date'10.10.2007 10:10:59,120''dd.mm.yyyy hh24:MI:SS,FF3' ) - to_date'01.01' || to_charsysdate'yyyy'), 'dd.mm.yyyy'), from dual t

    oder gibt es eine bessere lösung um von einem datum tag des jahres zubekommen und mod 7 zu machen ?

    grüße, sanisbar

  • #2
    Hallo MR-SANSIBAR,

    Welche Oracle-Version ??
    Der folgende select sollte gehen:
    PHP Code:
    select to_char(trunc(sysdate), 'DDD'from dual 
    mfg

    Comment


    • #3
      Soll das Ergebnis der Wochentag sein?

      select to_number(to_char(sysdate, 'd')) "Wochentag"
      from dual;
      Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

      Comment


      • #4
        Originally posted by DiddlMouse View Post
        Soll das Ergebnis der Wochentag sein?

        select to_number(to_char(sysdate, 'd')) "Wochentag"
        from dual;
        deine lösung ist genau das richtige.
        von o-sarusan ist auch gut, aber davon müsste ich module 7 aus dem ergebis machen , dann kommt auch das selbe raus.

        select mod(to_char(trunc(sysdate), 'DDD'),7) from dual
        und wie kann ich von den datum, welches in diesem format ist : dd.mm.yyyy hh24:min:ss:ff3

        den wochen tag herauskriegen. ich habe mir dabei gedacht, dass ich zuerst mit substr dd.mm.yyyy trennen und dann den wochentag herausbilde.
        gibt es keine kürzere variante ?

        Comment


        • #5
          Hallo MR-SANSIBAR,
          Originally posted by MR-SANSIBAR View Post
          ...von o-sarusan ist auch gut, aber davon müsste ich module 7 aus dem ergebis machen , dann kommt auch das selbe raus. ...
          Aber nur in diesem Jahr! Oder besser gesagt nur in Jahren, in denen der 1.1. auf einen Montag fällt!
          Originally posted by MR-SANSIBAR View Post
          ... und wie kann ich von den datum, welches in diesem format ist : dd.mm.yyyy hh24:min:ss:ff3

          den wochen tag herauskriegen. ich habe mir dabei gedacht, dass ich zuerst mit substr dd.mm.yyyy trennen und dann den wochentag herausbilde.
          gibt es keine kürzere variante ?
          Ich denke mal das SUBSTR() ist an der Stelle OK.

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Eines ist mir noch eingefallen: Solltest du Clients mit unterschiedlichen Sprachen haben, macht folgende Erweiterung durchaus Sinn. Bei den Amys beginnt die Woche mit dem Sonntag.

            Code:
            select to_char(sysdate, 'D', 'NLS_DATE_LANGUAGE=german') 
              from dual
            ;
            Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

            Comment


            • #7
              So – anbei die finale Lösung ohne substr

              Code:
              select to_char(
                       to_timestamp(
                         '10.10.2007 10:10:59,120', 
                         'dd.mm.yyyy hh24:MI:SS,FF3'), 
                       'D', 
                       'NLS_DATE_LANGUAGE=german') from dual;
              Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

              Comment


              • #8
                Wobei jetzt noch zu klären wäre, ob SUBSTR() oder TO_TIMESTAMP() die effizientere Variante ist
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment


                • #9
                  Originally posted by Falk Prüfer View Post
                  Wobei jetzt noch zu klären wäre, ob SUBSTR() oder TO_TIMESTAMP() die effizientere Variante ist
                  Da werden wir wohl den Oracle-Support bemühen müssen

                  Ich für meinen Teil würde to_timestamp() immer den Vorzug geben. Sollte sich mal das Format ändern, warum auch immer, würde diese Änderung sofort einen Fehler liefern. Das substr() wäre da Fehlertoleranter, aber auch mit einer gewissen Unsicherheit.

                  Aber das geht jetzt schon ins Philosophische
                  Wenn was schief gehen kann, dann geht es auch schief bzw. wenn man sich einen Fehler nicht erklären kann und dem nicht auf den Grund geht, hat das immer schlimme Folgen.

                  Comment


                  • #10
                    danke für eure hilfreichen tips.
                    grüße, sansibar

                    Comment

                    Working...
                    X