2011-03-05 131 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 

但由於某些原因,它總是返回else條件 - 即使數據庫中的值應該使查詢爲真。有任何想法嗎?我猜是因爲某種原因它不把結果作爲一個日期?

回答

1

Date.Now返回一個DateTime,那麼你的數據庫有日期和時間或日期?如果你只是想要日期,你可以使用Date.Today。

+0

這可能是問題的一部分,但我更新了代碼以使用Date.Today,但它仍然無效。當我通過調試器查看各種數據時,我可以看到它將像#3/1/2011#這樣的值拉回「Date?」類型。 - 我不確定爲什麼它不確定? – davemackey 2011-03-05 14:35:04

+0

然後,我會建議添加一些調試,看看哪些條件給你帶來麻煩,所以做Debug.WriteLine(qfresho.First.Value> = Date.Now)和Debug.WriteLine(qfreshc.First.Value <= Date.Now)看哪一個評估是錯誤的。 – 2011-03-05 15:00:10

+0

關於「日期?」鍵入:這意味着它是一個空的日期。請參閱http://msdn.microsoft.com/en-us/library/bb981315(v=vs.80).aspx – 2011-03-06 17:19:02

1

日期是否有時間組件可能會拋棄比較?

+0

沒有時間組件,因此我現在按照John的建議使用Date.Today。 – davemackey 2011-03-05 14:35:20

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")) 

這應該有所幫助。