Forum: SQL |
Thema:
MSSQL Server 2005: Fehler beim Konvertieren des Datentyps |
Von:
G. Guest (
29.05.2006 07:31) |
Hallo zusammen,
nachdem ich meine Anwendung von MSSQL2000 auf MSSQL2005 umgestellt habe, habe ich bei einer bisher funktionierenden Abfrage ein Problem:
SELECT Feldname1 FROM Tabelle
WHERE
(
(S1Art = 'D' AND (Convert(datetime,convert(char(10),S1Von,104)) <= '21.04.1977' AND Convert(datetime,convert(char(10),S1Bis,104)) >= '21.04.1977'))
OR
(S2Art = 'D' AND (Convert(datetime,convert(char(10),S2Von,104)) <= '21.04.1977' AND Convert(datetime,convert(char(10),S2Bis,104)) >= '21.04.1977'))
)
ORDER BY Feldname
In den Feldern SXVon/SXBis können unterschiedliche Datentypen als nvarchar gespeichert sein, welche für die Suche in diesen Datentyp konvertiert werden. In dem Fall meiner Abfrage suche ich nach Datumsfeldern. Jeder Teil der Abfrage S1 oder S2 funktioniert für sich alleine. Nur in Kombination gibt es einen Fehler bei der Konvertierung einer Zeichenfolge in datetime. In S2 befinden sich keine Datumsfelder. Somit steht S2Art auch nie auf 'D' (D für Datum). Es scheint nun so zu sein, als wenn der SQL2005 Server den kompletten Ausdruck auswerten will, obwohl nach der Bedingung S2Art <> 'D' die Abfrage nicht weiter ausgewertet werden müsste, da der gesamte Ausdruck ja nicht mehr True ergeben kann. Ein ANDALSO o.Ä. gibt es in SQL2005 ja nicht.
Hat jemand eine Idee für mich?
Riggson
Betreff |
Von |
Datum |
|
|
Alex
Franz
|
02.06.2006 15:40 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!