Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server:Datetime-Out-of-Range-Fehler

Ich nehme an, Ihr WDATE ist ein varchar / char und nicht eine Datenzeit, wie es sein sollte, Sie können es so umwandeln, aber ich empfehle, dass Sie den Datentyp in datetime ändern. Versuchen Sie Folgendes:

SELECT W.NUMBER,B.NAME,Br.NAME,W.WDATE,W.REPAIRSTATUS,W.REPAIRCOST,W.REMARK 
FROM Work_Order AS W,Brands AS B,Branches AS Br 
WHERE W.BRANDID = B.ID AND W.BRANCHID = Br.ID 
AND CONVERT( DATETIME, WDATE, 101) < CONVERT( DATETIME, '09/18/2012', 101)

Probieren Sie diesen Code aus, er sollte die meisten ungültigen Daten finden

SELECT WDATE, W.NUMBER,B.NAME,Br.NAME,W.WDATE,W.REPAIRSTATUS,W.REPAIRCOST,W.REMARK 
FROM Work_Order AS W,Brands AS B,Branches AS Br 
WHERE W.BRANDID = B.ID AND W.BRANCHID = Br.ID 
AND WDATE not like '[0-1][0-9]/[0-3][0-9]/20[0-1][0-9]'