Announcement

Collapse
No announcement yet.

SQL und DateTime

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

  • SQL und DateTime

    Hallo,

    Ich habe das Problem, dass ich in meiner where-Klausel keine DateTime-Variable zum Vergleich nehmen kann:

    String sqlBefehl = "SELECT * FROM myTable where Datum >= "+anfang+" and Datum <= "+ende;

    Wenn ich das Datum in der Form 'yyyymmdd' zum Verleich nehme klappt es:

    String sqlBefehl = "SELECT * FROM myTable where Datum >= '20031208' and Datum <= '20031212'";

    ich bekomme mit der Variable immer die Meldung: "System.Data.SqlClient.SqlException: Line 1: Incorrect syntax near '.2003'."

    Ich hab auch schon probiert, die einzelnen DateTime-Werte der Variablen in einen String in dem Format 'yyyymmdd' zusammen zu schneiden. Klappt aber auch nicht.

    Wie muss ich die Variable formatieren und in das Sql-Statement einbauen?

    Die Datenbankeinträge sind übrigens auch vom Typ DateTime (MS SQL SERVER 2000).

    Danke,
    Manu

  • #2
    Trennen mit '.' -> '10.12.2003'<BR>
    <BR>
    MYDATE BETWEEN '9.12.2003' AND '10.12.2003'<BR>
    <BR>
    Gruß<BR>
    Sasch

    Comment


    • #3
      Hi Sascha,

      danke für die schnelle Antwort. Aber in Deiner Lösung setzte ich auch wieder direkt einen String in das Sql-Statement. Ich möchte aber den Wert dynamisch mittels einer Variablen einsetzen. Aber wenn ich die DateTime-Variable in einen String der Form dd.mm.yyyy umwandle und dann in SQL einbaue, klappt es auch nicht.

      Weißt Du was anderes?

      Danke,
      Man

      Comment


      • #4
        Eine SQL-Variable

        Comment


        • #5
          Ich habs hingebracht (nachdem ich alle Variationen ausprobiert habe), indem ich meinen Wert in die Form 'mm-dd-yyyy' gebracht habe.

          Trotzdem danke!

          Schöne Grüße,
          Man

          Comment


          • #6
            Hallo,

            das Problem liegt daran, dass der Punkt "." vom SQL Server interpretiert wird. Das Datum muss also im Anführungszeichen oder Hochkommata gesetzt werden.

            <pre>...WHERE lastModified = "01.04.2001"</pre>

            Besser wäre hier die Verwendung von SqlParametern, da auch die Gefahr von injected SQL geringer ist.

            Schöne Grüße

            Jör

            Comment

            Working...
            X