如何在日期范围内查看记录?

时间:2011-11-25 09:55:46

标签: 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  
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>");
    }

5 个答案:

答案 0 :(得分:1)

用于构建查询的

使用Convert(datetime,fieldname,103)将varchar转换为datetime。

你的查询应该是这样的。

从Test中选择* 其中转换(datetime,field_date,103)&gt; ='2011-01-01' - 开始日期

转换(datetime,field_date,103)&lt; ='2012-01-01'; - 结束日期

这就是你的C#语句应该是这样的(它应该包含 103 代码来指定你的日期格式dd-mm-yyyy

 SqlCommand cmd = new SqlCommand("select Fname,Lname,Insert_Date from Test where Convert(datetime,Insert_Date,103) >= '" + Convert.ToDateTime(TextBox1.Text).ToString(format) + "' and Convert(datetime,Insert_Date,103) <= '" + Convert.ToDateTime(TextBox2.Text).ToString(format) + "'  ", con);

答案 1 :(得分:0)

SELECT colname FROM tablename WHERE somecol&gt; ='2011-01-09'AND somecol&lt; =''2011-09-24'

答案 2 :(得分:0)

从测试中选择*,其中日期&gt; ='2011-09-02'和日期&lt; '2011-0-04'

答案 3 :(得分:0)

查看BETWEEN SQL运算符。还要确保使用标准SQL Server格式正确格式化日期以避免和潜在的混淆:yyyymmdd hhmmss,并记住也考虑日期的时间部分。

答案 4 :(得分:0)

以下sql语句已针对我们公司的sql server 2008进行了测试,并且运行正常。

SELECT *
FROM some_table
WHERE date_field >= '2011-10-25' and date_field <= '2011-11-26'