这个是在服务器上运行的,从数据库中读取,在当前时间10分钟内的数据。但是,结果却发现,有时候,读的数据不止10分钟以内,比如,现在是2011-9-14 2:10:00,读出来的数据应该在2:00到2:10之间,结果却出现了2011-9-13 22:00以后的的数据,这是为什么呢? using (SqlConnection con = new SqlConnection(""))
{
using (SqlCommand cmd = new SqlCommand())
{
int i = 10;
con.Open();
cmd.Connection = con;
cmd.CommandText = "select * from tablename where updatetime between @begin and @end order by updatetime";
cmd.Parameters.Add(new SqlParameter("@begin", DateTime.Now.AddMinutes(-i)));
cmd.Parameters.Add(new SqlParameter("@end", DateTime.Now));
using (SqlDataReader sr = cmd.ExecuteReader())
{
while (sr.Read())
{
//...
}
}
}
}
{
using (SqlCommand cmd = new SqlCommand())
{
int i = 10;
con.Open();
cmd.Connection = con;
cmd.CommandText = "select * from tablename where updatetime between @begin and @end order by updatetime";
cmd.Parameters.Add(new SqlParameter("@begin", DateTime.Now.AddMinutes(-i)));
cmd.Parameters.Add(new SqlParameter("@end", DateTime.Now));
using (SqlDataReader sr = cmd.ExecuteReader())
{
while (sr.Read())
{
//...
}
}
}
}
你把sql放到数据库中看看呢
{
Trace.WriteLine("\n"+cmd.CommandText);
while (sr.Read())
{
//...
}
}
DateTime nowDate = DateTime.Now;
string startDate = nowDate.AddMinutes(-10).ToString("yyyy-MM-dd HH:mm:ss");
string endDate = nowDate.ToString("yyyy-MM-dd HH:mm:ss");用同一个时间 nowDate 逻辑上比较严谨
每一次都把最终的sql语句输出出来 当有错误的时候看看sql语句是什么样的
最重要的是找出错出规律