C# LINQ匹配单据日期、制单时间(日期与时间范围匹配)|C/S开发框架
作者:csframework|C/S框架网  发布日期:2023/08/03 12:44:51

下面代码适用日期与时间范围匹配。

C# 全选
var q_PO = _Database.GetQueryable<tb_PO>();

            //开始日期
            if (input.DocDateFrom > Globals.MinSqlDate)
            {
                q_PO = q_PO.Where(w => w.DocDate >= input.DocDateFrom.ToMinTime());
            }

            //结束日期
            if (input.DocDateTo > Globals.MinSqlDate)
            {
                q_PO = q_PO.Where(w => w.DocDate <= input.DocDateTo.ToMaxTime());
            }

C# 全选
        /// <summary>
        /// 默认最小的数据库时间,用于判断日期查询条件
        /// </summary>
        public static DateTime MinSqlDate { get { return new DateTime(1900, 1, 1); } }

C# 全选
        /// <summary>
        /// 转换为当天最小的时间(yyyy-MM-dd),不含时分秒信息,用于查询匹配
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static DateTime ToMinTime(this DateTime dt)
        {
            return new DateTime(dt.Year, dt.Month, dt.Day);
        }

        /// <summary>
        /// 转换为当天最大的时间(yyyy-MM-dd 23:59:59:999),用于查询匹配
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static DateTime ToMaxTime(this DateTime dt)
        {
            return new DateTime(dt.Year, dt.Month, dt.Day, 23, 59, 59, 999);
        }

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇