2011-03-05 5 views
0

나는 내 데이터베이스에서 날짜 값을 당겨 오전 : VB.NET 날짜 비교가 올바른 결과를 반환하지 않습니까?

 Dim qfresho = From p In dbConfig.Configs _ 
        Where p.Description = "FROD" _ 
        Select p.dateValue 
     Dim qfreshc = From p In dbConfig.Configs _ 
         Where p.Description = "FRCD" _ 
         Select p.dateValue 

그런 다음 현재 날짜로이 날짜 값을 비교 :

 If qfresho.First.Value >= Date.Now And qfreshc.First.Value <= Date.Now Then 
     lblFreshman.Text = "Freshmen are currently eligible to register for a room." 
    Else 
     Dim frdays As TimeSpan 
     frdays = (qfresho.First.Value).Subtract(Now) 
     lblFreshman.Text = "Registration will open for freshmen in " & frdays.Days & " days." 
    End If 

그러나 어떤 이유로는 항상 그렇지 조건을 반환 -에도 불구하고 데이터베이스의 값은 쿼리를 true로 설정해야합니다. 어떤 아이디어? 결과를 날짜로 가져 오지 않는 이유가 무엇인지 추측하고 있습니까?

답변

1

Date.Now는 DateTime을 반환하므로 데이터베이스에 날짜와 시간 또는 날짜가 표시됩니까? 날짜 만 원한다면 Date.Today를 사용할 수 있습니다.

+0

이것은 문제의 일부일 수 있지만 Date.Today를 사용하도록 코드를 업데이트했지만 여전히 작동하지 않습니다. 내가 디버거를 통해 다양한 것을 볼 때 # 3/1/2011 #과 같은 값을 "Date"유형으로 되돌리고 있다는 것을 알 수 있습니다. - 왜 이것이 확실하지 않은지 모르겠다. – davemackey

+0

그런 다음 Debug.WriteLine (qfresho.First.Value> = Date.Now) 및 Debug.WriteLine (qfreshc.First.Value <= Date.Now)을 사용하여 어떤 조건에서 문제가 발생하는지 확인하기 위해 일부 디버깅을 추가하는 것이 좋습니다. 어느 것이 거짓인지 평가하는 것을 볼 수 있습니다. –

+0

"날짜?" type : null이 허용되는 날짜입니다. http://msdn.microsoft.com/en-us/library/bb981315(v=vs.80).aspx를 참조하십시오. –

1

날짜에 비교를 던질 수있는 시간 구성 요소가 있습니까?

+0

시간 구성 요소가 없으므로 위의 요한 제안에 따라 Date.Today를 사용하고 있습니다. – davemackey

1

왜 비교하기 전에 두 개의 디버그를 추가하지 않습니까?

Debug.WriteLine(qfresho.First.Value.ToString("MM/dd/yyyy hh:mm:ss.ffff")) 
    Debug.WriteLine(qfreshc.First.Value.ToString("MM/dd/yyyy hh:mm:ss.ffff")) 

도움이됩니다.

관련 문제