2017-03-29 1 views
0

문제점이 있습니다. 아래에 저격 된 코드에서 변환 실패 오류가 발생합니다.날짜 및/또는 시간을 변환 할 때 변환하지 못했습니다.

왜 이런 일이 발생했는지 정확히 알 수 없는데, 개발자 환경에서 오류가 발생하지 않고 모든 것이 원활하게 실행됩니다.

Dim PrdDate As Date 
     SQL.ReturnRead = 0 
     PrdDate = dtpDataInput.Value.Date 
     MsgBox(PrdDate) 
     SQL.ReadQuery("SELECT CAST(DATEDIFF(second, TimeDown, TimeUp)/60/60 % 24 AS NVARCHAR(50)) + '.' 
       + CAST(DATEDIFF(second, TimeDown, TimeUp)/60 % 60 AS NVARCHAR(50)) as HrsDown From UDOData 
       WHERE (cast(TimeDown AS DATE) = '" & PrdDate & "' 
       AND CAST(TimeUp AS DATE) = '" & PrdDate & "') and FleetNo = '" & FleetStr & "'") 
     UDOHRS = SQL.ReturnRead 

라이브 환경의 국가 별 설정을 확인했는데 모두 정상인 것 같습니다. SQL Server에 대한 포맷 할 때

는 항상 YYYYMMDD로 포맷하는 것이 좋습니다 모든 사람의 도움

+1

왜 그냥 문자열을 연결의 적절한 매개 변수를 대신 사용하지 사용할 수 있습니까? SQL 주입을 허용하는 테스트 시나리오 작성 [Bobby Tables : SQL 주입 방지 가이드] (http://bobby-tables.com/) – SqlZim

답변

2

주셔서 감사합니다.

그냥

WHERE (cast(TimeDown AS DATE) = '" & PrdDate.ToString("yyyyMMdd") & "' 
+0

감사합니다! 매력처럼 작동합니다 ... –

관련 문제