前一段时间在项目中需要查询一个月内一个时间点到另一个时间点的数据,刚开始真的是没有什么头绪,然后就在晚上开始找,最后找到了一个MySQL数据库中自带的函数DATE_FORMAT然后就有了如下的代码:
/// <summary>
/// 查询本月8点之前的番茄总数量
/// </summary>
/// <param name="userID">用户ID</param>
/// <returns></returns>
public int SelectEight(string userID)
{
int i = 0;
//开始日期
string firstTime = FirstTime();
//结束日期
string lastTime = LastTime();
MySqlParameter[] param =
{
new MySqlParameter ("@userID",userID),
new MySqlParameter ("@firstTime",firstTime),
new MySqlParameter ("@lastTime",lastTime)
};
string sql = "SELECT sum(tomato_time_interval)/60 FROM tm_record_s WHERE (start_time BETWEEN @firstTime AND @lastTime)AND user_id = @userID AND (DATE_FORMAT(start_time, '%H:%i:%S') BETWEEN '00:00:00'AND'08:00:00')";
DataTable table = helper.ExecuteQuery(sql, param);
if(Convert.ToString(table.Rows[0][0])!="")
{
i = Convert.ToInt32(table.Rows[0][0]);
}
return i;
}
/// <summary>
/// 获取本月月末时间
/// </summary>
/// <returns></returns>
private string FirstTime()
{
int year = DateTime.Now.Year;
int month = DateTime.Now.Month;
string firstTime = year.ToString() + "-" + month.ToString() + "-01";
return firstTime;
}
/// <summary>
/// 获取本月月底时间
/// </summary>
/// <returns></returns>
private string LastTime()
{
int year = DateTime.Now.Year;
int month = DateTime.Now.Month;
string lastTime = year.ToString() + "-" + month.ToString() + "-31";
return lastTime;
}
这真的是应了一句话:多看帮助少走弯路呀。