在农历和阳历日期间的转换的基础上进行的。 按BirthdayType生日类型(1阳历,2农历)来检索出近期(5天内)过生日的人员列表。 //描述:检索出LinkMan表中的5天内过生日的人员信息,BirthdayType=2农历生日,BirthdayType=1阳历生日 int rangeDay=5;//生日提前天数 ChineseLunisolarCalendar clc = new ChineseLunisolarCalendar(); string Luneryear = ConvertToChineseYearStyle(clc.GetYear(DateTime.Now));//获取当前农历年,并将其转换为中文(此方法就不贴了,so easy) //阳历农历按表中存的自动检索出对应的生日范围内的信息 StringBuilder strSql = new StringBuilder(); strSql.AppendLine("select *,convert(varchar(10),Birthday,23) as BirthdayNew,convert(varchar(10),Birthday1,23) as Birthday1New from LinkMan "); strSql.AppendLine(" where 1=1 "); /*阳历生日判断Start*/ strSql.AppendLine("and datediff(day,getdate(),Convert(varchar(100),(convert(varchar(4),Year(getdate()))+'-'+ "); strSql.AppendLine(" convert(varchar(2),Month(Birthday))+'-'+convert(varchar(2),Day(Birthday))),23)) <= '" + rangeDay + "'"); strSql.AppendLine("and datediff(day,getdate(),Convert(varchar(100),(convert(varchar(4),Year(getdate()))+'-'+ "); strSql.AppendLine("convert(varchar(2),Month(Birthday))+'-'+convert(varchar(2),Day(Birthday))),23)) >= 0"); /*阳历生日判断End*/ strSql.AppendLine(" and BirthdayType=1 and (Birthday is not null or Birthday!='')"); strSql.AppendLine("union all"); strSql.AppendLine("select *,convert(varchar(10),Birthday,23) as BirthdayNew,convert(varchar(10),Birthday1,23) as Birthday1New from LinkMan "); strSql.AppendLine(" where 1=1"); /*农历生日判断Start*/ strSql.AppendLine("and datediff(day,getdate(),Convert(varchar(100),(convert(varchar(4),Year(getdate()))+'-'+ "); strSql.AppendLine(" convert(varchar(2),Month(dbo.fn_GetDate('" + Luneryear + "'+Birthday1)))+'-'+convert(varchar(2),Day(dbo.fn_GetDate('" + Luneryear + "'+Birthday1)))),23)) <= '" + rangeDay + "'"); strSql.AppendLine("and datediff(day,getdate(),Convert(varchar(100),(convert(varchar(4),Year(getdate()))+'-'+ "); strSql.AppendLine("convert(varchar(2),Month(dbo.fn_GetDate('" + Luneryear + "'+Birthday1)))+'-'+convert(varchar(2),Day(dbo.fn_GetDate('" + Luneryear + "'+Birthday1)))),23)) >= 0"); /*农历生日判断End*/ strSql.AppendLine(" and BirthdayType=2 and (Birthday1 is not null or Birthday1!='')");