C# 如何查看日期范围内的记录?
我的表测试中有这样一个记录,我的日期列是varchar类型的C# 如何查看日期范围内的记录?,c#,sql,datetime,C#,Sql,Datetime,我的表测试中有这样一个记录,我的日期列是varchar类型的 Fname Lname Date vivek parikh 01-09-2011 10:00:00 PM kashyap vyas 02-09-2011 10:50:00 AM viral panchal 02-09-2011 10:00:00 PM Arpit Gosai 03-09-2011 10:00:00 PM Da
Fname Lname Date
vivek parikh 01-09-2011 10:00:00 PM
kashyap vyas 02-09-2011 10:50:00 AM
viral panchal 02-09-2011 10:00:00 PM
Arpit Gosai 03-09-2011 10:00:00 PM
Darshit Chokshi 04-09-2011 10:00:00 PM
Sameer Rangrez 24-08-2011 9:15:12 AM
我想从页面中获取日期范围开始日期和结束日期内的记录
我的代码是
DateTime time = DateTime.Today; // Use current time
string format = "MM-dd-yyyy";
SqlCommand cmd = new SqlCommand("select Fname,Lname,Insert_Date from Test where Insert_Date >= '" + Convert.ToDateTime(TextBox1.Text).ToString(format) + "' and Insert_Date <= '" + Convert.ToDateTime(TextBox2.Text).ToString(format) + "' ", con);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Response.Write(ds.Tables[0].Rows[i]["Fname"].ToString());
Response.Write(ds.Tables[0].Rows[i]["Lname"].ToString());
Response.Write(ds.Tables[0].Rows[i]["Insert_Date"].ToString()+"<br>");
}
从tablename中选择colname,其中somecol>='2011-01-09'和somecol从Test中选择*,其中Date>='2011-09-02'和Date2011-0-04'检查SQL运算符。另外,请确保使用标准SQL Server格式正确格式化日期,以避免和潜在的混淆:yyyymmdd hhmmss,并记住还要考虑日期的时间部分。要生成查询,请使用datetime,fieldname,103将varchar转换为datetime 您的查询应该类似于 从测试中选择* 其中Convertdatetime,字段_date,103>='2011-01-01'-开始日期
下面的sql语句已经在我们公司的sql server 2008上进行了测试,运行良好
SELECT *
FROM some_table
WHERE date_field >= '2011-10-25' and date_field <= '2011-11-26'
到目前为止你试过什么?哪个版本的C?一个简短的LINQ语句应该会为您提供一个非常好的解决方案。这是从数据库中提取的吗?如果是,它是什么数据库?或者它保存在内存中?是的,它来自sql server 2008 r2。如果它在sql server 2008中,则使用<或>进行简单的日期比较将不起作用,因为列类型为varchar。请解释你想要什么解决方案,您需要sql查询还是需要linq表达式来获取该数据?我需要sql查询,从中可以通过比较日期来获取准确的日期。它将varchar数据类型转换为datetime数据类型,导致值超出范围。您正在获取该数据,因为我忘了为日期指定样式号103。有关样式格式,请参见以下链接[链接]
SELECT *
FROM some_table
WHERE date_field >= '2011-10-25' and date_field <= '2011-11-26'