我有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的记录
请帮忙
答案 0 :(得分:1)
使用Convert或Cast
T-SQL将VARCHAR
值转换为Date
或DateTime
,并学习/使用参数而不是硬编码的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;
}