在linq-to-sql中查询两个日期时间

时间:2012-01-28 13:45:45

标签: c# linq

我有一个查询,它将2个日期时间作为参数,我需要编写一个where子句来获取它们之间的记录。这些不仅仅是日期,而是日期和时间(即2012年1月28日9:45)

到目前为止,我这个:

where d.RecordDateTime > StartDate && d.RecordDateTime < EndDate

我应该将它们重写为:

where d.RecordDateTime > StartDate.Date && d.RecordDateTime < EndDate.Date

或者它没有问题。

感谢。

3 个答案:

答案 0 :(得分:4)

您当前的查询definitley有效...取决于您是否希望结果包含StartDate和/或EndDate,它应该稍微更改一下:

where d.RecordDateTime >= StartDate && d.RecordDateTime <= EndDate

如果您按照问题中的建议更改了查询,那么您可以将其全部包含在结果中而不依赖于时间 - 尽管它会错过时间为00:00:00或甚至错过一整天的行( EndDate)。

答案 1 :(得分:1)

您需要检查此链接,因为它将告诉在where Where clause in datetime format

子句中过滤数据的简化方法
StartDtm < @ToTime  AND EndDtm >= @FromTime 

答案 2 :(得分:0)

如果您有一个日期变量,并且在模型上有RecordDateStart和RecordDateEnd,则可以执行以下操作:

 .Where(x => x.DtStart <= YourDate & x.DtEnd >= YoutDate)