【发布时间】:2015-10-22 10:00:08
【问题描述】:
我正在使用动态 Linq 返回用户输入搜索条件的数据。除了用户选择的日期外,我的查询工作正常。我当前的代码是:
StringBuilder whereClause = new StringBuilder();
if (startDate.HasValue || endDate.HasValue)
{
DateTime searchStartDate = startDate.HasValue ? startDate.Value : DateTime.MinValue;
DateTime searchEndDate = endDate.HasValue ? endDate.Value : DateTime.MaxValue;
whereClause.AppendFormat("Date >= {0} && Date <= {1}",
searchStartDate.Date.ToUniversalTime(),
searchEndDate.Date.ToUniversalTime());
}
if (whereClause.Length > 0)
{
return (from p in this.repository.GetQueryable<Party>() select p)
.Where(whereClause.ToString())
.ToList();
}
查询失败,因为在 DateTime 字段和 Int32 字段之间进行比较,这意味着查询已将我的日期文字解释为整数。
我应该如何格式化日期?
【问题讨论】: