繁体   English   中英

日期范围介于LINQ查询中的两个日期之间

[英]Date range falling between two dates in a LINQ query

我试图编写一个选择查询,该查询返回输入日期范围在LINQ查询中两个日期字段之间的记录。

我的输入是:

  • date1-开始日期
  • date2-结束日期

我的数据库字段是

  • 预约开始
  • 预约结束

另外,我还要确保输入14:00-15:00不会返回15:00-16:00的值。

return (from t1 in db.Appointments where (t1.AppointmentStart <= date2 && (t1.AppointmentEnd) >= date1)

如果有人可以帮助我,我将不胜感激。

我对您的要求不是100%清楚。 在开始行中,您要求输入“输入日期范围介于两个日期字段之间的记录”,但是在“其他”行中,您表示您不希望返回约会开始日期不相等的记录输入的结束日期。 我认为这是两个不同的要求,因此我将给您两个不同的查询。

第一个查询是:

    from t1 in db.Appointments
    where date1 >= t1.AppointmentStart
    where date2 <= t1.AppointmentEnd
    select t1;

第二个查询是:

    from t1 in db.Appointments
    where date2 > t1.AppointmentStart
    where date1 < t1.AppointmentEnd
    select t1;

第一个查询返回“包含”输入日期的记录。

第二个查询返回与输入日期“重叠”的记录。

我认为您想要重叠查询更有意义,并且该查询将满足您的“ 14:00-15:00不返回15:00-16:00的值”的要求。

如果我在理解您的要求时出错并需要进行任何更改,请告诉我。

它向后看。

如果满足以下条件:

Date1 =开始

Date2 =结束

那么我会认为startdate等于或等于约会开始,而enddate等于或等于约会结束,或者:

return (from t1 in db.Appointments where (date1 >= t1.AppointmentStart && date2 <= t1.AppointmentEnd))

我还更改了括号,因为它们对我没有意义(好像一个人不见了)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM