//通过开始时间、结束时间、结果获取总提交数
 public static int getTotSubmitByStEdAndNum(string st, string ed, int num)
 {
     sql = "" +
           "SELECT count(solution_id) as cnt FROM solution " +
           "WHERE contest_id = " + DBTool.contest_id + " " +
           "AND num = " + num +
           " AND UNIX_TIMESTAMP(in_date) >= UNIX_TIMESTAMP('" + st + "')" +
           " AND UNIX_TIMESTAMP(in_date) <= UNIX_TIMESTAMP('" + ed + "')";
     try
     {
         ds = DBTool.Query(sql);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
     if (ds.Tables[0].Rows.Count > 0)
     {
         return(int.Parse(ds.Tables[0].Rows[0][0].ToString()));
     }
     else
     {
         return(0);
     }
 }
 //获取过题队伍数
 public static int getProblemTeamByCnt(int cnt)
 {
     sql = "" +
           "SELECT C.num FROM(" + " " +
           "SELECT B.cnt, count(B.cnt) as num FROM(" + " " +
           "SELECT user_id, count(A.num) as cnt FROM(" + " " +
           "SELECT user_id, num, min(in_date) FROM solution" + " " +
           "WHERE contest_id = " + DBTool.contest_id + " " +
           "AND result = '4'" + " " +
           "GROUP BY user_id, num" + " " +
           "ORDER BY user_id" + " " +
           ") AS A GROUP BY A.user_id" + " " +
           ") AS B GROUP BY B.cnt ) AS C WHERE C.cnt = " + cnt;
     try
     {
         ds = DBTool.Query(sql);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
     if (ds.Tables[0].Rows.Count > 0)
     {
         return(int.Parse(ds.Tables[0].Rows[0][0].ToString()));
     }
     else
     {
         return(0);
     }
 }
 //获取contest结束时间
 public static string getEndTime()
 {
     sql = "SELECT end_time FROM contest WHERE contest_id = " + DBTool.contest_id;
     try
     {
         ds = DBTool.Query(sql);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
     return(ds.Tables[0].Rows[0][0].ToString());
 }
 //获取当前时间
 public static string getNow()
 {
     sql = "SELECT NOW()";
     try
     {
         ds = DBTool.Query(sql);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
     return(ds.Tables[0].Rows[0][0].ToString());
 }
 //获取题数
 public static int getProblemCnt()
 {
     sql = "SELECT max(num) as Num FROM contest_problem WHERE contest_id = " + DBTool.contest_id;
     try
     {
         ds = DBTool.Query(sql);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
     if (ds.Tables[0].Rows.Count > 0)
     {
         return(int.Parse(ds.Tables[0].Rows[0][0].ToString()));
     }
     else
     {
         return(0);
     }
 }
 //获取首A时间
 public static string getFirstSolveTime(int num)
 {
     sql = "SELECT count(in_date) as num, min(in_date) " +
           "FROM solution " +
           "WHERE result = 4 " +
           "AND contest_id = " + contest_id + " " +
           "AND num = " + num;
     try
     {
         ds = DBTool.Query(sql);
     }
     catch (Exception e)
     {
         throw new Exception(e.Message);
     }
     if (int.Parse(ds.Tables[0].Rows[0][0].ToString()) > 0)
     {
         return(ds.Tables[0].Rows[0][1].ToString());
     }
     else
     {
         return(null);
     }
 }