Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MSSQL Datum

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] MSSQL Datum

    Hi Leute,

    ich hab hier mal wieder ein interessantes Phänomen:

    Ich führe folgendes ganz einfaches Skript aus:

    PHP-Code:
    mssql_connect("192.168.0.211","sa","password");
    mssql_select_db("DB");

    $sql "SELECT LTh_DatVon FROM ISLogTourHead WHERE LTh_DatVon > '06/01/2008' AND LTh_DatVon < '06/04/2008'";
    $qrymssql_query($sql);
    while(
    $now mssql_fetch_object($qry))
    {
      echo 
    "$now->LTh_DatVon<br>";

    Der MSSQL-Server liegt auf einem Separaten System, nennen wir das Ding mal 211 (siehe IP Adresse). Auf 211 liegt kein Webserver, die Maschine ist ausschließlich für die Datenbank.

    Mache ich diese Abfrage jetzt vom Linux System aus so bekomme ich das gewünschte Ergebnis: > 01 Juni UND < 04 Juni

    Führe ich exakt das gleiche Skript von einem Windows System (nicht 211) aus, so bekomme ich: > 06 Januar UND < 06 April

    Also genau Monat und Tag vertauscht. Wie kann das sein, die beiden Skripte arbeiten doch mit der selben Datenbank???

    [edit]
    Dieses Problem besteht übrigens erst seit der Umstellung von MSSQL 7 auf MSSQL 2005. Vorher lieferten beide PHP-Skripte das gleiche (erste) Ergebnis und die PHP Konfiguration wurde in keinem Fall geändert...


  • #2
    etwas ähnliches kann man auch in oracle nachstellen, Das liegt an umgebungsvariablen, die das Datumsformat festlegen...
    bei oracle heisst das NLS_DATE_FORMAT, evt gibt es ein equivalent auch in MSSQL

    Kommentar


    • #3
      Na toll, zu früh gefreut:

      PHP-Code:
      ini_set("mssql.datetimeconvert","Off"); 
      ändert rein gar nichts

      [edit]
      naja doch, aber es ändert nur das ausgabeformat

      Kommentar


      • #4
        benutze im query die Funktion CONVERT() damit kannst Du unabhängig von den Einstellungen arbeiten

        Kommentar


        • #5
          Code:
          SELECT
            LTh_DatVon FROM ISLogTourHead 
          WHERE 
            LTh_DatVon > (SELECT convert(datetime,'01/06/2008',103)) 
          AND 
            LTh_DatVon < (SELECT convert(datetime,'04/06/2008',103))
          [edit]
          Funktioniert das is aber ganz schön aufwendig für nen ganz normales Datrum

          Kommentar

          Lädt...
          X