如何比较selecttime查询中datetimepicker的2个日期?

时间:2012-06-09 09:19:39

标签: c#

我有2个datetimepickers。在我的选择查询中,我想在这些日期之间获取记录。 varchar(MAX)中数据库中日期的数据类型。对于datetimepicker,我已将自定义格式设置为dd-MM-yyyy。这是我的SQL查询

SqlDataAdapter da = new SqlDataAdapter("Select custname From tb_customer WHERE date >= '"+dtp_fromdate.Text+"' AND date <= '"+dtp_todate.Text+"'", con);

例如:如果我的开始日期是9-06-2012,到目前为11-06-2012。通过上述查询,它显示了我对10-06-2012和11-06-2012的记录

如果我的开始日期是10-06-2012并且到目前为2012年6月11日,请注意。通过上述查询,它显示了10-06-2012而不是11-06-2012的记录

请帮忙

2 个答案:

答案 0 :(得分:1)

使用ConvertCast T-SQL将VARCHAR值转换为DateDateTime,并学习/使用参数而不是硬编码的SQL字符串。

答案 1 :(得分:0)

问题在于缺乏参数使用。使用参数将避免您和yuor数据库后端之间的任何误解

DataSet ds = new DataSet();
using (SqlConnection con = new SqlConnection(connectionString))
{
    SqlDataAdapter da = new SqlDataAdapter();
    string query = "Select custname From tb_customer WHERE date >= @from AND date <= @to"
    da.SelectCommand = new SqlCommand(queryString, con);
    da.SelectCommand.AddWithValue("@from" , dtp_fromdate.Value);
    da.SelectCommand.AddWithValue("@to" , dtp_to.Value);
    da.Fill(ds);
    return ds;
}