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

  • cycap
    hat ein Thema erstellt [Erledigt] MSSQL Datum.

    [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...

  • cycap
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • cycap
    antwortet
    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

    Einen Kommentar schreiben:


  • HPR1974
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X