2011-05-12 39 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分,只有那些以后的比。

您的第二个子句正在寻找完全匹配。如果您想要包括范围,请使用>=<=而不是><