我在數據庫中有一個名爲「repeat」的DateTime字段。我只想記錄今天「重複」中的日期。按日期篩選(linq)
我想:
(...).Where(e => e.repeat.Value.Date.Day.Equals(DateTime.Now.Day));
或:
(...).Where(e => e.repeat.Value.Date.Day==DateTime.Now.Day);
,但它不工作。
任何想法?
感謝總幹事卡米爾
我在數據庫中有一個名爲「repeat」的DateTime字段。我只想記錄今天「重複」中的日期。按日期篩選(linq)
我想:
(...).Where(e => e.repeat.Value.Date.Day.Equals(DateTime.Now.Day));
或:
(...).Where(e => e.repeat.Value.Date.Day==DateTime.Now.Day);
,但它不工作。
任何想法?
感謝總幹事卡米爾
「它不工作」是非常模糊的,但是目前你'重新檢查星期幾而不是日期。我會建議使用:
Date today = DateTime.Today;
var query = ....Where(e => e.repeat.Value.Date == today);
編輯:現在還不清楚什麼這裏涉及的類型 - 如果repeat.Value
本身並不是一個DateTime
,你可能想:
var query = ....Where(e => e.repeat.Value.Date.Date == today);
如果'repeat.Value.Date'包含與午夜不同的時間? –
@ArnaudF .:「與午夜不同的時間」是什麼意思?我假定'Value'是一個'DateTime',因此'Value.Date'是一天中的'DateTime'。 –
@John:在DateTime中,當比較「2011/01/01 00:00:00 AM」到「2011/01/01 06:00:00 AM」時,結果將是錯誤的。或者我錯過了什麼?原來的帖子沒有什麼是說這不可能發生。 –
比較短日期,確保您的年/月/日的一次拍攝相同的:
(...).Where(e => e.repeat.Value.Date.ToShortDateString() == DateTime.Now.ToShortDateString());
試試這個:
(...).Where(e => (e.repeat >= DateTime.Today) && (e.repeat < DateTime.Today.AddDays(1)))
我喜歡這個,那就是e.repeat中的強大的重複元素。 –
它是可靠的,這可能是決定性的。 –
@Kamil:如果這些幫助你,請將它們標記爲已接受。 – TheGwa