이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 22861|회답: 0

[출처] SqlDateTime 오버플로우. 1753년 1월 1일 오전 12:00:00부터 9999년 12월 31일 사이에 있어야 합니다

[링크 복사]
게시됨 2016. 6. 29. 오후 12:08:36 | | | |
SqlDateTime 오버플로우. 1753년 1월 1일 오전 12:00:00부터 999년 12월 31일 11일 사이에 있어야 합니다


NHibernate orm 프레임워크로 데이터를 삽입할 때 위의 오류가 보고되었습니다:

SqlDateTime overflow / SqlDateTime overflow
[요약: 오류 - SqlDateTime 초과 발생. 1753년 1월 1일 오전 12:00:00부터 9999년 12월 31일 오후 11:59:59 사이에 있어야 합니다. SqlDateTime 초과 기간입니다. 1753년 1월 1일 오전 12:00:00 War 사이에 있어야 합니다. 전쟁 12/31/999 오후 11:59:59 이유 C# 데이터베이스 삽입 또는 업데이트 시 datetime 단어 사용 시

오류 - SqlDateTime 오버플로우. 1753년 1월 1일 오전 12:00:00부터 9999년 12월 31일 오후 11:59:59 사이여야 합니다
SqlDateTime 오버플로우. 1753년 1월 1일 오전 12:00:00부터 9999년 12월 31일 오후 11:59:59 사이여야 합니다

원인

C# 데이터베이스를 삽입하거나 업데이트할 때 datetime 필드 값이 기본적으로 null입니다. C# 0001-01-01 삽입은 SQL 서버 DateTime 타입 오버플로우를 일으킵니다.

C#의 DateTime 타입 범위

DateTime.MinValue = 1/1/0001 12:00:00 AM DateTime.MaxValue = 23:59:59.9999999, 9999년 12월 31일, 10000년 1월 1일 00:00:00 전 정확히 100나노초 틱
SQL Server의 Datetime 타입 범위

1753년 1월 1일 오전 12:00:00부터 9999년 12월 31일 오후 11:59:59 사이


이 글을 읽고 나니 뭔가 이해한 것 같아요. 속성이 비어 있어야 하고, NHibernate가 자동으로 기본값을 설정해야 하니, 이렇게 해야 한다고 생각합니다????


그 다음, 원래 할당되지 않았던 UpdateTime 속성을 할당한 후,오류가 없음을 확인했습니다, 그리고 데이터 테이블을 삽입했습니다.

하지만 제 분야가 비어 있을 때가 있는데, 어떻게 해야 할까요???

DateTime 클래스에서 UpdateTime 속성을 찾아서 DateTime으로 설정하시나요?  즉, 공허함을 허용하는 것입니다. (매핑된 xml이 가장 좋고, not-null="false"로 설정한 것도 다음과 같습니다:)



드디어 성공, 데이터베이스 스크린샷을 찍어보세요!






이전의:매핑 문서를 컴파일할 수 없었어요: xxx.hbm.xml
다음:NHibernate에서 ISession에 대한 플러시 이해
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com