我实际上是创建一个方法来获取我的asp图表基于某个日期时间范围的详细信息。我看这2个链接,开始和月底12个月(一年)
我的方法获取数据,
//Monthly Statistics
public int janLogin(String username)
{
int result = 0;
StringBuilder sqlCmd = new StringBuilder();
sqlCmd.AppendLine("SELECT COUNT(*) FROM AuditActivity WHERE Username = @getUsername AND DateTimeActivity BETWEEN @getFirstDT AND @getLastDT AND ActivityType = @getType");
try
{
SqlConnection myConn = new SqlConnection(DBConnectionStr);
myConn.Open();
SqlCommand cmd = new SqlCommand(sqlCmd.ToString(), myConn);
//DateTime
DateTime currentDT = DateTime.Today;
//Code Below gets only current Start and End of Current month
DateTime FirstDT = currentDT.AddDays(1 - currentDT.Day);
DateTime SecondDT = FirstDT.AddMonths(1).AddSeconds(-1);
cmd.Parameters.AddWithValue("@getUsername", username);
cmd.Parameters.AddWithValue("@getFirstDT", FirstDT);
cmd.Parameters.AddWithValue("@getLastDT", SecondDT);
cmd.Parameters.AddWithValue("@getType", "Login");
result = Convert.ToInt16(cmd.ExecuteScalar());
myConn.Close();
return result;
}
catch (SqlException ex)
{
logManager log = new logManager();
log.addLog("AuditNLoggingDAO.janLogin", sqlCmd.ToString(), ex);
return 0;
}
}
我想要做的其实你可以从方法名称看janLogin基本上可以让多少人从登陆2017年1月1日00:00:00至2017年1月31日。本月实际上是8月份。我如何才能真正得到2017年的所有12个月(1月至12月)开始和结束月份(从粗体示例)?
如果我没有错,它不得不涉及for循环?哪里的最终数是12.但我很确定如何做到这一点..可能有一个重复的问题,但我似乎找不到一个适合我的要求..
欣赏任何帮助。谢谢!
开始,特别是不使用AddWithValue与日期[我们可以停止使用addWithValue了吗?](HTTPS:/ /blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/) – Steve
其次,你能解释一下数据库中两列的数据类型是什么?如果他们也存储时间部分你的代码可能会被窃听 – Steve
@Steve谢谢你的建议和文章,将来会修改! DateTime是firstDT的数据类型和lastD – domster