用变量查询日期 sql 语句
各位前辈大家好,我刚刚学习c#,遇到一个使用变量进行sql查询的问题。
我定义的表有‘日期’字段,类型为datetime,我要使用变量 selectMonth、minDay、maxDay查询指定时段的数据,但不知道怎么截取字段中的月份和日期。
conStr = "server=(local);user id=sa;pwd=sa;database=forcastserver";
SqlConnection con = new SqlConnection(conStr);
con.Open();
sqlStr = "select * from 积雪 where month(日期)='" + selectMoths + "' and day(日期)>='" + minDay + "' and day(日期)<='" + maxDay + "' order by 流域,日期";
//sqlStr = "select * from 积雪";查询所有是正常的。
//SqlCommand myCmd = new SqlCommand(sqlStr, con);
SqlDataAdapter myDa = new SqlDataAdapter(sqlStr,con);
DataSet myDs = new DataSet();
myDa.Fill(myDs);//出错的地方,不知道是不是sql语句有问题,month(日期)这里不对?
if (myDs.Tables[0].Rows.Count > 0)
{
GridView1.DataSource = myDs;
GridView1.DataBind();
}
else
{
Response.Write("<script>alert('没有相关记录')</script>");
}
con.Close();
错误提示:用户代码未被处理 SqlException
')' 附近有语法错误。
sql?日期查询语句
------解决方案--------------------sqlStr = string.Format(" select * from 积雪 where month(日期)={0} and day(日期) between {1} and {2} ",Convert.ToInt32(selectMoths),Convert.ToInt32(minDay),Convert.ToInt32(maxDay));
------解决方案--------------------sqlStr = "select * from 积雪 where month(日期
)='" + selectMoths + "' and day(日期
)>='" + minDay + "' and day(日期)<='" + maxDay + "' order by 流域,日期";
注;LZ红色右括号是中文,这是不正确的啊,要改为英文状态下的
sqlStr = "select * from 积雪 where month(日期
)='" + selectMoths + "' and day(日期
)>='" + minDay + "' and day(日期)<='" + maxDay + "' order by 流域,日期";
------解决方案--------------------很显然,从你贴出的SQL语句可以看出,那个右括号明显是中文全角括号,明显和左边的括号不一样哦
------解决方案--------------------day(日期
)的右括号是中文的格式,改成英文形式下的就OK了
------解决方案-------------------- DATEPART(year,时间字段)=2012年