Tôi giả sử WDATE của bạn là một varchar / char và không phải là datatime như bình thường, bạn có thể ép kiểu như thế này, tuy nhiên, tôi khuyên bạn nên thay đổi kiểu dữ liệu thành datetime. Hãy thử cách này:
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)
Hãy thử mã này, nó sẽ tìm thấy hầu hết các ngày không hợp lệ
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]'