我在DAL类中有一个方法:
public IList<HouseHold> FindByDate(DateTime start, DateTime end)
{
using (ISession session = NHibernateHelper.AbreSession())
{
return session.CreateCriteria<HouseHold>()
.Add(Expression.Between("RegistrationDate", start, end))
.List<HouseHold>();
}
}
有了这个,我希望从关闭间隔之间的日期获取数据。但是当我使用这种方法时,结果是一个左闭的间隔,如下所示:
private IList<HouseHold> LoadData()
{
hh = dao.FindByDate(start.SelectedDate.Value, end.SelectedDate.Value);
return hh;
}
我选择2015年8月20日至2015年8月22日期间DataPicker
(WPF)的日期,显示20至21的结果。但是当我选择日期20/08/2015和23/08时/ 2015它显示20到22的结果,而我知道这是23的结果!
出了什么问题?
答案 0 :(得分:1)
似乎我们必须将早晨时间转换为午夜时间。来自
23/08/2015 00:00
- 我们需要23/08/2015 23:59
最简单的方法就是添加一天
.Add(Expression.Between("RegistrationDate", start, end.AddDay(1)))