/// <summary>
/// 验证结束日期大于等于开始日期
/// </summary>
/// <param name="startDate">开始日期</param>
/// <param name="endDate">结束日期</param>
/// <param name="curDbField">验证日期对应的数据库字段</param>
/// <param name="filterExpression">条件</param>
/// <returns>true/false</returns>
private bool ValidOracleStartEndDate(string startDate, string endDate, string curDbField, out string filterExpression)
{
filterExpression = string.Empty;
string startDateFilter = " AND {1} >= to_date('{0}','YYYY-MM-DD HH24:MI:SS') ";
string endDateFilter = " AND {1} < to_date('{0}','YYYY-MM-DD HH24:MI:SS') ";
// 开始、结束日期为空
if ((startDate == null || startDate.Length == 0) && (endDate == null || endDate.Length == 0))
{
return true;
}
DateTime sDate = WebCommon.ToStartDateTime(startDate);
DateTime eDate = WebCommon.ToEndDateTime(endDate);
// 开始日期大于结束日期
if (sDate > eDate)
{
return false;
}
else // 开始日期小于等于结束日期(正确)
{
eDate = eDate == DateTime.MaxValue ?
DateTime.MaxValue : eDate.AddDays(1);
filterExpression = string.Format(startDateFilter, sDate, curDbField);
filterExpression += string.Format(endDateFilter, eDate, curDbField);
return true;
}
}
/// 验证结束日期大于等于开始日期
/// </summary>
/// <param name="startDate">开始日期</param>
/// <param name="endDate">结束日期</param>
/// <param name="curDbField">验证日期对应的数据库字段</param>
/// <param name="filterExpression">条件</param>
/// <returns>true/false</returns>
private bool ValidOracleStartEndDate(string startDate, string endDate, string curDbField, out string filterExpression)
{
filterExpression = string.Empty;
string startDateFilter = " AND {1} >= to_date('{0}','YYYY-MM-DD HH24:MI:SS') ";
string endDateFilter = " AND {1} < to_date('{0}','YYYY-MM-DD HH24:MI:SS') ";
// 开始、结束日期为空
if ((startDate == null || startDate.Length == 0) && (endDate == null || endDate.Length == 0))
{
return true;
}
DateTime sDate = WebCommon.ToStartDateTime(startDate);
DateTime eDate = WebCommon.ToEndDateTime(endDate);
// 开始日期大于结束日期
if (sDate > eDate)
{
return false;
}
else // 开始日期小于等于结束日期(正确)
{
eDate = eDate == DateTime.MaxValue ?
DateTime.MaxValue : eDate.AddDays(1);
filterExpression = string.Format(startDateFilter, sDate, curDbField);
filterExpression += string.Format(endDateFilter, eDate, curDbField);
return true;
}
}
/// <summary>
/// 验证结束日期大于等于开始日期
/// </summary>
/// <param name="startDate">开始日期</param>
/// <param name="endDate">结束日期</param>
/// <param name="curDbField">验证日期对应的数据库字段</param>
/// <param name="filterExpression">条件</param>
/// <returns>true/false</returns>
public static bool ValidSqlServerStartEndDate(string startDate, string endDate, string curDbField, out string filterExpression)
{
filterExpression = string.Empty;
string startDateFilter = " AND convert(varchar(10),{1},120) >= '{0}' ";
string endDateFilter = " AND convert(varchar(10),{1},120) < '{0}' ";
// 开始、结束日期为空
if ((startDate == null || startDate.Length == 0) && (endDate == null || endDate.Length == 0))
{
return true;
}
DateTime sDate = Object2StartDate(startDate);
DateTime eDate = Object2EndDate(endDate);
// 开始日期大于结束日期
if (sDate > eDate)
{
return false;
}
else // 开始日期小于等于结束日期(正确)
{
eDate = eDate == DateTime.MaxValue ?
DateTime.MaxValue : eDate.AddDays(1);
filterExpression = string.Format(startDateFilter, sDate.ToString("yyyy-MM-dd"), curDbField);
filterExpression += string.Format(endDateFilter, eDate.ToString("yyyy-MM-dd"), curDbField);
return true;
}
}
/// 验证结束日期大于等于开始日期
/// </summary>
/// <param name="startDate">开始日期</param>
/// <param name="endDate">结束日期</param>
/// <param name="curDbField">验证日期对应的数据库字段</param>
/// <param name="filterExpression">条件</param>
/// <returns>true/false</returns>
public static bool ValidSqlServerStartEndDate(string startDate, string endDate, string curDbField, out string filterExpression)
{
filterExpression = string.Empty;
string startDateFilter = " AND convert(varchar(10),{1},120) >= '{0}' ";
string endDateFilter = " AND convert(varchar(10),{1},120) < '{0}' ";
// 开始、结束日期为空
if ((startDate == null || startDate.Length == 0) && (endDate == null || endDate.Length == 0))
{
return true;
}
DateTime sDate = Object2StartDate(startDate);
DateTime eDate = Object2EndDate(endDate);
// 开始日期大于结束日期
if (sDate > eDate)
{
return false;
}
else // 开始日期小于等于结束日期(正确)
{
eDate = eDate == DateTime.MaxValue ?
DateTime.MaxValue : eDate.AddDays(1);
filterExpression = string.Format(startDateFilter, sDate.ToString("yyyy-MM-dd"), curDbField);
filterExpression += string.Format(endDateFilter, eDate.ToString("yyyy-MM-dd"), curDbField);
return true;
}
}