2008-10-04 12 views
11

DateTime 필드가있는 LINQ를 사용하여 레코드를 검색 할 때 ToString() 만 사용할 수 있습니다.DateTime, DateTime? LINQ

다른 모든 DateTime 메서드는 어디에 있습니까?

나는 Convert.ToDateTime에 DateTime을 입력해야합니까? 필드가 반환하겠습니까? (날짜 시간) 및 (날짜 시간?)

답변

16

는, 당신은 DateTime?.Value 특성을 통해 DateTime 값을 얻을 수 있습니다.

+0

... 또는 DateTime을 전송하면 되나요? DateTime으로 변환합니다. 두 경우 모두, 먼저 null인지 확인하거나 예외가 발생하는지 확인해야합니다. – Lucas

+0

감사합니다. 나는 거의 1 년 전이지만 귀하의 대답은 단지 새로운 질문을 게시하지 못하게했습니다. –

0

옆 네임 스페이스 충돌의 차이점은 무엇입니까

, 나는 SQL의 날짜가 C#을 날짜 시간 이상 (따라서 유효 기간의 다른 범위) 다른 획기적인를 가지고 있음을 알고있다.

new DateTime()을 저장 프로 시저에 보내고 무슨 뜻인지 확인해보십시오. DateTime?에 의해 당신이 Nullable<DateTime>을 의미하는 경우

9

SQL에서 DateTimes는 null이 될 수 있습니다. C#에서 DateTimes는 null 일 수 없습니다. nullable value types에 대해 조금 읽을 수 있습니다. 값 유형 지정 변수는 널이 될 수 없기 때문에이 상황을 처리하기 위해 일반 클래스가 작성되었습니다. Nullable <>이라고하며 일반적으로 형식 뒤에 물음표가 적혀 있습니다.

이러한 값을 사용하려면 .HasValue 속성을 확인해야합니다. 객체에 값이 있는지 또는 null인지를 아는 부울입니다. .HasValue 속성이 true인지 확인한 후에는 .Value 속성을 안전하게 사용할 수 있습니다. .Value 속성은 DateTime 형식입니다.

+0

HasValue는 LINQ 쿼리에서 NULL 정수 값을 확인하는 작업에 매우 유용했습니다. c.Field (Of Integer?) ("SecondaryID"). HasValue – atconway

2

SQL에서 DateTime 필드는 Null로 설정되어 있습니다. 그런 다음 LINQ에서 필드에 액세스하려고하면 .NET에서 해당 필드가 실제로 날짜인지 여부를 알 수 없기 때문에 날짜 방법을 사용하기 전에 Convert.ToDateTime()을 사용해야합니다.

필드에 항상 날짜가 포함되어 있으면 데이터베이스 열을 NOT NULL로 설정하면됩니다.