Announcement

Collapse
No announcement yet.

Datum in View formatieren

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

  • Datum in View formatieren

    Hallo,

    ich hab folgendes Problem... Ich habe eine View die sich ein Datum zieht. Beim Select * auf die View wird aus dem kompletten Datum nur noch dd.mm.yyyy, ich will jedoch Stunde, Minute, Sekunde auch drin haben.
    Bei dem Create-View-Select (ich hoffe ihr wisst was ich meine) will ich das Datum nicht mit to_char ins richtige Format bringen, da das Datum in der View als DATE formatiert bleiben soll.

    Ich dachte es müsste mit to_date(datum, 'DD.MM.YYYY HH24:MI:SS') auch gehen, tut es aber nicht...

    Was mache ich denn falsch?

    Grüße,
    Mephi

  • #2
    Ist das ein Schreibfehler to_date() auf ein Datumsfeld ?
    Code:
    to_date(datum, 'DD.MM.YYYY HH24:MI:SS')
    Richtig wäre (falls datum vom Typ DATE ist) - wie Du oben schreibst:
    Code:
    to_char(datum, 'DD.MM.YYYY HH24:MI:SS')

    Comment


    • #3
      Hi,
      danke für deine Antwort.

      Das Selektierte Feld "datum" ist vom Typ Date.
      Ich will es in dem Create-Select der View in das Format dd.mm.yyyy hh24:mi:ss bringen. Jedoch soll es ein DATE bleiben, damit ich später im Programm eine Eingrenzung über das Datum machen kann. Also between TagX und TagY.

      Comment


      • #4
        Originally posted by Mephisto84 View Post
        Hi,
        danke für deine Antwort.

        Das Selektierte Feld "datum" ist vom Typ Date.
        Ich will es in dem Create-Select der View in das Format dd.mm.yyyy hh24:mi:ss bringen. Jedoch soll es ein DATE bleiben, damit ich später im Programm eine Eingrenzung über das Datum machen kann. Also between TagX und TagY.
        Ja, jum hat dir ja die Lösung gezeigt ?

        --> to_char(datum, 'DD.MM.YYYY HH24:MI:SS')

        - Du musst dies in deine View aufnehmen ...

        Code:
        CREATE OR REPLACE VIEW FORCE myView as
        SELECT myField1, myField2, to_char(datum, 'DD.MM.YYYY HH24:MI:SS') as myDatum FROM mytable
        WHERE ....
        .....

        Gruss

        Comment


        • #5
          Hallo dbwizard,
          ich habe ja in meinem Ausgangsposting geschrieben, dass ich es mit to_char nicht machen kann, da sonst der Typ in der View VARCHAR und nicht DATE ist. Ich möchte auf die View aus dem Programm heraus einen select * ausführen mit einer Einschränkung des Zeitfensters und daher soll mir der Typ DATE erhalten bleiben.
          Vielleicht bekomm ich jedoch auch einfach den select nicht richtig hin, dass ich mit dem VARCHAR-Typ auch eine korrekte Einschränkung des Zeitbereichs erwirken kann....

          Comment


          • #6
            BETWEEN bekommt man nach der entsprechenden Typumwandlung mit TO_DATE auch auf einem VARCHAR2-Feld hin - ein DATE-Feld enthält aber IMMER den Zeitanteil. Beispiel:
            Code:
            WITH cdaten AS 
             ( 
             SELECT to_char(sysdate,   'DD.MM.YYYY') cDatum   FROM dual
               UNION ALL
             SELECT to_char(sysdate-1, 'DD.MM.YYYY')          FROM dual
               UNION ALL
             SELECT to_char(sysdate-2, 'DD.MM.YYYY')          FROM dual
               UNION ALL
             SELECT to_char(sysdate-3, 'DD.MM.YYYY')          FROM dual
               UNION ALL
             SELECT to_char(sysdate-4, 'DD.MM.YYYY')          FROM dual
             )
            SELECT * from cdaten
              WHERE   to_date(cDatum)
              BETWEEN to_date('10.08.2009 00:00:00','DD.MM.YYYY HH24:MI:SS') 
              AND     to_date('11.08.2009 23:59:59','DD.MM.YYYY HH24:MI:SS')
            gibt die korrekten Tage aus:
            Code:
            CDATUM
            11.08.2009
            10.08.2009
            Zuletzt editiert von jum; 12.08.2009, 17:15.

            Comment

            Working...
            X