• 对年-月-日时间类型进行比较


    由于业务要求,需要添加查询,而查询的时间格式为“2018-05-13”;数据库的时间格式为“2018-05-10 17:32:31”

     var entity = context.Infomations.OfType<Docments>().Where(f => (!param.TypeId.HasValue || f.TypeId == param.TypeId)                  //Docments模型继承于Infomations    
                            && (string.IsNullOrEmpty(param.Title) || f.Title.Contains(param.Title))
                            && (!param.Level.HasValue || f.Level == param.Level)
                            && (!param.IsValid.HasValue || f.IsPublish == param.IsValid)
                            && (!param.BeginTime.HasValue || f.CreateTime >= param.BeginTime)
                            && (!param.EndTime.HasValue || f.CreateTime <= param.EndTime)).OrderByDescending(f =>f.CreateTime).ToList();

    这里存在一个问题,就是当开始时间和结束时间选择同一天时,筛选不出来。如选择2018-05-08,这时开始时间和结束时间均为“2018-05-08 00:00:00”,这只能取出创建时间为“2018-05-08 00:00:00”的数据,而不是这一天的数据;

    方案一:在进行筛选值钱给结束时间加上一天

         param.EndTime = param.EndTime.Value.AddDays(1);

    时间范围变成:“2018-05-08 00:00:00”----“2018-05-09 00:00:00”

    方案二:将开始时间和结束时间进行字符串拼接成(“2018-05-08 00:00:00”----“2018-05-09 23:59:59”),再转为时间类型进行比较

       string startTimeStr = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
        DateTime startTime = DateTime.Parse(startTimeStr);
        string endTimeStr = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
        DateTime endTime = DateTime.Parse(endTimeStr);
        Console.WriteLine(startTime);
        Console.WriteLine(endTime);

  • 相关阅读:
    如何使用Tomcat
    Android推送通知指南(转)
    路由器
    供应链是什么意思
    c#打印(通过Word)
    RFID(电子标签、射频识别)技术在医疗行业中的应用
    无线数传DTU
    在C#中获取打印机的当前状态
    CCD是什么
    Failed to enable constraints. One or more rows contain values violating nonnull, unique, or foreignkey constraints.
  • 原文地址:https://www.cnblogs.com/likui-bookHouse/p/9067157.html
Copyright © 2020-2023  润新知