public DataTable GetStudentBetween(string StartTime , string EndTime)
{
StringBuilder strSql = new StringBuilder();
strSql.AppendLine(" Select A.id,A.createdate,A.lesson_plan_id,A.userid,A.useflg,A.delflg,A.qdflg ,U.num,U.username,U.username AS username2 ");
strSql.AppendLine(" ,case A.qdflg when 0 then '未到' when 1 then '已到' else '' end as qiandao ");
strSql.AppendLine(" ,1 as Sort ");
strSql.AppendLine(" From tbl_lesson_student AS A ");
strSql.AppendLine(" Left join tbl_lesson_plan AS B ");
strSql.AppendLine(" ON A.lesson_plan_id=B.id ");
strSql.AppendLine(" Left join tbl_user U ");
strSql.AppendLine(" ON A.userid =U.userid ");
if (StartTime.Trim() != "" && EndTime.Trim() != "")
{
strSql.AppendLine(" Where A.createdate between '" + StartTime + "'and '" + EndTime + "'");
}
strSql.AppendLine(" Union ");
strSql.AppendLine(" Select A.id,A.createdate,A.lesson_plan_id,A.userid,A.useflg,A.delflg,A.qdflg ,100,U.expname AS username,U.expname +'('+convert(VARCHAR,Round(convert(float,DATEDIFF(m,U.birthday,getdate()))/12,1))+':'+G.username +')' AS username2 ");
strSql.AppendLine(" ,case A.qdflg when 0 then '未到' when 1 then '已到' else '' end as qiandao ");
strSql.AppendLine(" ,2 as Sort ");
strSql.AppendLine(" From tbl_lesson_exp AS A ");
strSql.AppendLine(" Left join tbl_lesson_plan AS B ");
strSql.AppendLine(" ON A.lesson_plan_id=B.id ");
strSql.AppendLine(" Left join tbl_user_exp U ");
strSql.AppendLine(" ON A.userid =U.expid ");
strSql.AppendLine(" Left join tbl_user G ");
strSql.AppendLine(" ON G.userid=U.userid ");
if (StartTime.Trim() != "" && EndTime.Trim() != "")
{
strSql.AppendLine(" Where A.createdate between '" + StartTime + "'and '" + EndTime + "'");
}
strSql.AppendLine(" Order BY Sort, id ");
return DbHelperSQL.Query(strSql.ToString()).Tables[0];
}
在用C#访问数据库时代码如上会出现题目所示的错误,如果把StartTime EndTime这些改成具体的时间如:’2017-03-01’就没问题能通过。大神求解求解