SqlFunc.Between 做时间筛选得不到结果 返回

SqlSugar 老数据
3 3120


Page.Items = db.Queryable<RechargeActivity>()

.Where(it=>it.ShopCode == shopcode)

.WhereIF(!string.IsNullOrEmpty(actname), it => SqlFunc.Contains(it.Title, actname))

.WhereIF(!string.IsNullOrEmpty(searchtime), it => SqlFunc.Between(it.StartTime, Convert.ToDateTime(Regex.Split(searchtime, " - ")[0]), Convert.ToDateTime(Regex.Split(searchtime, " - ")[1])))

.WhereIF(actstatus != 2, it => it.IsEffective == actstatus)

.OrderBy(it=>it.Id, OrderByType.Desc)

.ToPageList(pageindex, pagenum, ref totalitems);



SqlFunc.Between(it.StartTime, Convert.ToDateTime(Regex.Split(searchtime, " - ")[0]), Convert.ToDateTime(Regex.Split(searchtime, " - ")[1])))


热忱回答3

  • AcedDCF AcedDCF VIP0
    2019/4/28

    SqlFunc.Between(object value, object start, object end)



    start 和  end  值必须是已处理过的,



    string aa = "", bb = "";

    if (!string.IsNullOrEmpty(searchtime))

    {

    aa = Regex.Split(searchtime, " - ")[0]; bb = Regex.Split(searchtime, " - ")[1];

    }


    Page.Items = db.Queryable<RechargeActivity>()

    .Where(it=>it.ShopCode == shopcode)

    .WhereIF(!string.IsNullOrEmpty(actname), it => SqlFunc.Contains(it.Title, actname))

    //.WhereIF(!string.IsNullOrEmpty(searchtime), it => SqlFunc.Between(it.StartTime, Convert.ToDateTime(Regex.Split(searchtime, " - ")[0]), Convert.ToDateTime(Regex.Split(searchtime, " - ")[1])))

    .WhereIF(!string.IsNullOrEmpty(searchtime), it => SqlFunc.Between(it.StartTime, Convert.ToDateTime(aa), Convert.ToDateTime(bb)))

    .WhereIF(actstatus != 2, it => it.IsEffective == actstatus)

    .OrderBy(it=>it.Id, OrderByType.Desc)

    .ToPageList(pageindex, pagenum, ref totalitems);



    0 回复
  • 把开始时间和结束时间提取成变量传进between

    0 回复
  • 通过aop看sql对不对

    0 回复