我有一个查询,它将2个日期时间作为参数,我需要编写一个where子句来获取它们之间的记录。这些不仅仅是日期,而是日期和时间(即2012年1月28日9:45)
到目前为止,我这个:
where d.RecordDateTime > StartDate && d.RecordDateTime < EndDate
我应该将它们重写为:
where d.RecordDateTime > StartDate.Date && d.RecordDateTime < EndDate.Date
或者它没有问题。
感谢。
答案 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)