日期字段的查询,一般需要输入开始日期和结束日期,有的时候,客户嫌麻烦,想输入2017-07这样的快捷输入来实现月度查询。
这样的问题,需要程序自动补全开始日期和结束日期的范围,才能有效的获取需要的数据。
开始日期:比较容易获得,条件+01字符串就可以了;
结束日期:需要将开始日期转换成datatime,然后计算本月的天数,c#有现成的函数,直接用,太幸福了,然后拼出结束日期,ok。
看代码,仅供参考:
case "System.DateTime":
// 按月查询
string ls_s, ls_e;
DateTime ldt_1;
int days = 28;
// as_cxvalue 是输入的查询条件
if (as_cxvalue.Length == 7 )
{
// 开始时间
ls_s = as_cxvalue + "-01 00:00";
try
{
// 开始时间 转成datetime
ldt_1 = System.Convert.ToDateTime(ls_s);
// 获取当前月度的天数
days = DateTime.DaysInMonth(ldt_1.Year, ldt_1.Month);
// 返回用户的查询条件
ls_2 = "[" + as_cxname.ToString() + "字段月度查询:" + as_cxvalue.ToString() + "]";
}
catch
{
// 返回条件不正确
ls_2 = "[" + as_cxname.ToString() + "条件不合法:" + as_cxvalue.ToString() + "]";
}
// 拼出结束日期
ls_e = as_cxvalue +"-"+days + " 23:59";
// 返回查询的where字符串
ls_1 = as_cxid.ToString() + " >= '" + ls_s + "' and " + as_cxid.ToString() + " < '" + ls_e + "'";
}
还不是很完善,基本能用。