2011-05-12 12 views
0

條款我有一個Where子句,看起來像這樣:LINQ其中有2個日期時間條件

where p.Appoint.Date > TheStartTime.Date && p.Appoint.Date < TheEndTime.Date 

出於某種原因,它返回0。但是,如果我寫這個

where p.Appoint.Date == TheStartTime.Date 

返回一個計數(不是我想要的那個)。我究竟做錯了什麼?

感謝您的建議。

+4

舉例說,日期是「2011-05-12」和「2011-05-13」。沒有'.Date'將會比第一個更大並且比第二個更小。乍一看,把你的比較改爲'> ='和'<='。 – 2011-05-12 20:46:43

+0

你有沒有試過p.Appoint.Date> = TheStartTime.Date && p.Appoint.Date <= TheEndTime.Date – ingo 2011-05-12 20:46:57

+1

你應該發佈那些作爲真正的答案... – 2011-05-12 20:52:52

回答

0

好吧,我知道了:

a) use >= and <= 
b) remove the .Date 
+0

您應該用此答案更新您的問題 – phillip 2011-05-12 21:11:31

1

在做這樣的事情,它總是更容易使用蜱

你兩個數字之間比較的方式。

+0

'date1.Ticks svick 2011-05-12 21:38:14

+0

你更喜歡以12爲基數考慮? – iwayneo 2011-05-12 22:08:19

+0

如果你只是比較兩個日期,沒有必要考慮基數12.而且,是的,我更喜歡考慮實際日期以考慮數字,例如634408429027550057. – svick 2011-05-12 22:22:43

0

你的第一款擁有專屬的上限和下限。因此,舉例來說,如果您的下個日期是早上8點30分,這將是而不是匹配記錄,確切時間爲上午8點30分,只有那些以後的比。

您的第二個子句正在尋找完全匹配。如果您想要包括範圍,請使用>=<=而不是><