Announcement

Collapse
No announcement yet.

Abfrage mit Datum funktioniert nicht

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

  • Abfrage mit Datum funktioniert nicht

    Hallo zusammen,

    habe folgende Abfrage für den SQL-Server 2005:

    Code:
    select * from tbl_bw_oe where abdatum = #2007/05/01#
    Das Datum wir hier im ISO-Format übergeben. Leider akzeptiert der SQL2005 diese Abfrage nicht ! Beim SQL2000 war dies nie ein Problem.
    Auch der Datumausdruck in der amerikanischen Notation (#5/1/2007#) wird nicht akzeptiert.

    Folgende Fehlermeldung erhalte ich:

    "Falsche Syntax in der Nähe von '#'."

    Kann mir jemand sagen was ich hier falsch mache? Gibt es hier beim SQL2005 irgendwelche Änderungen bei der Ausführung von SQL-Abfragen?
    Übrigens Access 2000/2003 hat hiermit auch kein Problem.

    Bin dankbar für jede Hilfe
    Gruss mjm

  • #2
    Hallo mjm,

    bei jedem Datenbanksystem ist es möglich das Datumsformat global festzulegen. Wie es bei SQL-Server geht, weiss ich leider nicht. Such mal in der DOKU. Vielleicht ist es bei Dir auf zweistellige Jahresangabe eingestellt.

    Gruß frauwue
    docendo discimus

    Comment


    • #3
      Hallo,

      ich muss Deine Aussage bestreiten, dass SQL-Server 2000 das Datum im der Form #yyyy/mm/dd# akzeptiert. Am einfachsten ist hier ein String in der Form 'yyyymmdd'. Der wird immer verarbeitet, unabhängig von der eingestellten Sprache. Außerdem gibt es eine Einstellung über SET DATEFORMAT. Such das mal in der Hilfe. Ein weiters Stichwort wäre "Konstanten".
      Dein SQL sollte also so aussehen:

      select * from tbl_bw_oe where abdatum = '200/0501'

      Gruß
      Olaf

      Comment


      • #4
        Hallo Olaf,

        du hast recht. In SQL2000 funktioniert es leider auch nicht. Ich dachte ich hätte dies bisher so gemacht.
        Also muss ich in meinem Programm die SQL-Statements entsprechend je System vorhalten.

        Danke und Gruss
        mjm

        Comment


        • #5
          Nimm parametrisierte Abfragen. Damit kann dir das Datumsformat egal sein.

          Comment


          • #6
            Hallo mjm,

            #2007/05/01# ist nicht im ISO-Format, sondern im japanischen.
            ISO Format ist yyyy-mm-dd, also mit Bindestrichen statt Slash.

            Bei der CONVERT Funktion kann man das Datumsformat angeben. Probier mal:
            [highlight=SQL]
            select * from tbl_bw_oe
            where abdatum = convert(datetime, '2007/05/01', 111)[/highlight]
            111 steht dabei eben für das japanische Format, siehe auch MSQL BOL.

            Olaf
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment

            Working...
            X