Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SQL Server:błąd daty i godziny poza zakresem

Zakładam, że twoje WDATE to varchar / char, a nie datatime, tak jak powinno być, możesz go rzucić w ten sposób, jednak zalecam zmianę typu danych na datetime.Spróbuj tego:

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)

Wypróbuj ten kod, powinien znaleźć większość nieprawidłowych dat

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]'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2005 :Konwertowanie wartości varchar „1,23E-4” na wartość dziesiętną kończy się niepowodzeniem

  2. Oblicz czas wykonania zapytania SQL?

  3. Jak mogę wykonać .sql z C#?

  4. Jak odwrócić słowa w kolumnie

  5. Flaga ANSI_NULLS w programie SQL Server?