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


    由于业务要求,需要添加查询,而查询的时间格式为“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);

  • 相关阅读:
    C++访问WebService gSoap方式
    vc6
    POS 60域用法
    本次操作由于这台计算机的限制而被取消
    POS的一点杂笔
    QT5.5
    注册表常用快捷键
    WebBrowser与IE的关系,如何设置WebBrowser工作在IE9模式下?
    js中的prototype属性
    WPF入门教程系列二十——ListView示例(二)
  • 原文地址:https://www.cnblogs.com/likui-bookHouse/p/9067157.html
Copyright © 2020-2023  润新知