2014-11-03 97 views
0

的兩種不同格式的我有我的表EndDate列,它接受記錄等這樣比較的DateTime

2014年10月29日00:00:00.000

現在我想以比較這DateTime當前日期。對於這一點,我做了這樣的: -

var today=DateTime.Now; 

var LstEvents = (from t in _context.Tournaments 
          where t.SiteId == siteId && t.EndDate != null 
          && t.EndDate < today 
          select t).ToList(); 

t.EndDate < today沒有返回結果我想要的。我做添加監視今天和檢查的價值和它的格式是一樣

今天{2014年11月3日下午8時12分〇〇秒} System.DateTime的

因此,我的日期是無法進行比較。 任何幫助將不勝感激

謝謝!

+0

'DateTime'沒有格式,字符串有。什麼類型的'EndDate'列? – 2014-11-03 14:48:18

+0

datetime @TimSchmelter – 2014-11-03 14:49:28

+2

'DateTime'由_value_進行比較,而不是格式化值。別的東西正在拋棄你的結果。 – 2014-11-03 14:50:22

回答

1

我已經粘貼的代碼是完全正確的。我知道DateTime格式是無關緊要的。無論是來自數據庫,還是我在C#代碼中使用它。我有點困惑,因爲我認爲如果數據庫中的DateTime記錄以某種格式設置,那麼它不能與C#中的DateTime值進行比較。要麼我們必須改變格式或做一些事情。無論如何,感謝guyzz的幫助。

乾杯!

1

他們可比。你所看到的是你的日期的字符串表示,它需要格式文化考慮在內。

如果您從調試器中看到了這一點,那麼它會針對您的實例顯示ToString()的結果,即使用常規日期和時間格式說明符('G')和當前線程的區域性。

(編輯:相信這是他所指的是)

enter image description here

+0

你能告訴我一些代碼嗎?我無法得到這個@ ken2k – 2014-11-03 14:57:19

+0

我不認爲這是一個代碼項,本身。我認爲ken2k正在討論在IDE中出現的值。 – Robert 2014-11-03 16:41:58