2014-07-08 4 views
-1

VB.net 프로그램에서 SqlServer2012 인스턴스로 날짜를 삽입하는 데 문제가 있습니다. 우선 여기SQL Server 2012에 CDate 삽입하기 일 및 월 반전

내가 데이터 (Vb.net)

ExitTime = CDate("1.1.1970 00:00:00").AddSeconds(currentField).ToLocalTime 

우리는 저장 프로 시저에이 값을 추가을 생성하는 방법이다 (Vb.net)는 SQL Server 저장 프로 시저에서

With comsql5.Parameters.AddWithValue("@ExitTime", ExitTime) 

여기

@ExitTime datetime, [...] 
[...] 
Insert into [table] ([ExitTime]) VALUES (@ExitTime) 

는 vb.net 종료 시간 종료 시간의 출력 : 08 06 : : 나는 데이터베이스에보고 싶은 무엇 31.000

2014입니다/여기에 오후 2시 6분 31초

/2014 07 2014년 8월 7일 14 SQL Server 데이터베이스에서 같은 행은 -07-08 14 : 06 : 31.00 프로그램의 다른 부분이 필드를 검사하지만 문자열로 표시되기 때문에 ... 달이 뒤집어지기 때문에 일치하지 않습니다.

편집 : 명확 해집니다. 비교를 문자열로하는 다른 부분을 변경할 수 없습니다. 나는 이것이 datetime을 비교하는 가난한 방법이라는 것을 알고있다. 시간에 대한

감사는

+4

이 링크가 그래서 날짜 값이 SQL입니다

SELECT CONVERT (VARCHAR, getdate(), 121); 

확인 당신이 바로 그것을 보내 정확히 무엇입니까? datetime을 문자열로 검사하는 다른 코드는 SQL Server에 문제가없는 곳입니다. "보고있는"것은 실제로 SQL Server에 저장되는 것이 아닙니다. datetime 값을 비교하는 가장 좋은 방법은 문자열 표현이 아닌 datetime 값을 사용하는 것입니다. –

+0

내가 보는 것은 실제로 저장된 것이 아니라는 것을 안다. 나는 문자열 비교를 보여주기 위해 질문을 업데이트 할 것이다. 불행히도이 코드는 내 코드가 아니므로 변경할 수 없습니다. – drgn

+1

"프로그램의 다른 부분"에서 코드를 변경하여 문자열로 비교하지 말고 대신 datetime 값과 비교하면 아무런 문제가 없습니다. * 데이터 * 값 (데이터 저장 방법) 대신 * 프리젠 테이션 * 값 (사용자가 보는 것)으로 작업하려고하는데 이는 잘못된 것입니다. –

답변