在linq到sql中的两个日期时间之间查询

本文关键字:两个 日期 时间 查询 之间 linq sql | 更新日期: 2023-09-27 18:21:36

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

到目前为止,我这个:

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

我应该重写为:吗

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

或者它是正常的。

谢谢。

在linq到sql中的两个日期时间之间查询

您当前的查询定义有效。。。根据您是否希望结果包括StartDate和/或EndDate,应该稍微更改一下:

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

如果您按照问题中的建议更改查询,那么您将使其包含在结果中,而与时间无关——尽管它会错过时间为00:00:00的行,甚至错过一整天(EndDate)。

您需要检查此链接,因为它将告诉在日期时间格式的where子句where子句中筛选数据的简化方法

StartDtm < @ToTime  AND EndDtm >= @FromTime 

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

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