Announcement

Collapse
No announcement yet.

Statement aus Profiler: Fehler beim Konvertieren des varchar-Datentyps in datetime

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

  • Statement aus Profiler: Fehler beim Konvertieren des varchar-Datentyps in datetime

    hallo, ich programmiere in ASP.Net oder C# allgemein gesprochen und als Datenbank nutze ich MSSQL.

    Passt alles wunderbar, Software läuft einwandfrei. Manchmal möchte ich ein Statement optimieren und um nicht die kompletten Parameter einer Prozedur händisch füllen zu müssen, rufe ich die Software auf und fange mir mit dem Profiler das Statement.

    Dieses kopiere ich mir dann in ein neues Fenster im Management Studio und führe es aus. Allerdings bekomme ich immer wenn ich Datumsfelder als Parameter habe ein Fehler beim Ausführen im Management Studio. "Fehler beim Konvertieren des varchar-Datentyps in datetime". Das Statement kann ich ausführen indem ich den Datumswert in ein deutsches Datum umschreibe.

    so geht es nicht im Management Studio (so wird es im Profiler angezeigt)
    PHP Code:
    @datevon='2013-01-01 00:00:00',@datebis='2013-12-31 23:59:59' 
    so geht es im Management Studio
    PHP Code:
    @datevon='01.01.2013 00:00:00',@datebis='31.12.2013 23:59:59' 
    Das verstehe ich nicht ganz. Warum funktioniert das Ausführen in der Software. Wenn ich das "vermutlich gleiche" Statement rauskopiere und ausführe funktioniert es nicht mehr. Was könnte ich verändern damit das rauskopieren immer sofort funktioniert?

    (Weil es hier schon andere Beiträge mit der Fehlermeldung gibt, die Parameter werden so übergeben
    PHP Code:
             cmd.Parameters.AddWithValue("@datevon"datumvon);
             
    cmd.Parameters.AddWithValue("@datebis"datumbis); 

    Auch so ist es nicht anders
    PHP Code:
                cmd.Parameters.Add("@datevon"SqlDbType.DateTime).Value datumvon;
                
    cmd.Parameters.Add("@datebis"SqlDbType.DateTime).Value datumbis

  • #2
    Hallo,

    jede Session (z.B. die geprofilerte und die im Management-Studio) läuft mit ihren eigenen Parametern - unter anderem auch dateformat.
    Infos z.B. hier

    Ich denke, ein den abgezweigten Befehlen vorangestelltes
    [highlight=sql]
    SET DATEFORMAT = ymd
    [/highlight]

    löst das Problem.

    Viele Grüße
    Tino
    Ich habs gleich!
    ... sagte der Programmierer.

    Comment

    Working...
    X