C# LINQ匹配单据日期、制单时间(日期与时间范围匹配)
下面代码适用日期与时间范围匹配。
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);
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网