DATEADD函数用于Azure数据库
本文关键字:数据库 Azure 用于 函数 DATEADD | 更新日期: 2023-09-27 18:01:57
我正在开发一个连接到Azure数据库的web应用程序。我试图使用DATEADD函数,但我得到一个错误。
我的代码:SqlCommand commandAvg = new SqlCommand("SELECT AVG (" + statDataSelection + ") FROM Buoy3v3 WHERE time >'" + TextBox1_fromDate.Text + "' AND time <'" + TextBox2_toDate.Text + "';", connection);
commandAvg.CommandType = CommandType.Text;
SqlCommand commandAvg1month = new SqlCommand("SELECT AVG (" + statDataSelection + ") FROM Buoy3v3 WHERE time > (DATEADD(month, 1,'" + TextBox1_fromDate.Text + "')) AND time < (DATEADD(month, 1,'" + TextBox2_toDate + "')) ;", connection);
commandAvg1month.CommandType = CommandType.Text;
string Avgresult = commandAvg.ExecuteScalar().ToString();
string Avgresult1month = commandAvg1month.ExecuteScalar().ToString();
Avgresult变量工作正常,但我得到Avgresult1month变量的错误,所以我认为我的问题是与DATEADD函数,但我无法找出什么是错的。
非常感谢任何帮助。
您的代码:
SqlCommand commandAvg1month = new SqlCommand("SELECT AVG (" + statDataSelection + ") FROM Buoy3v3 WHERE time > (DATEADD(month, 1,'" + TextBox1_fromDate.Text + "')) AND time < (DATEADD(month, 1,'" + TextBox2_toDate + "')) ;", connection);
commandAvg1month.CommandType = CommandType.Text;
你认为SQL是聪明的,因为字符串是一个日期时间?;)
更正DateADD函数中的TextBox1_FromDate.Text
和TextBox2_ToDate
变量
理论上,您将TextBox
连接到您的字符串(这将是System.Web.UI.WebControls.TextBox
,而不是Text
属性的实际值)。
TextBox2_toDate.Text << .Text
但在实践中,您应该将其作为参数绑定,而不是直接连接,原因有很多,包括:
- 如果日期没有以兼容的格式输入?
- Sql注入攻击漏洞
还要注意TIME
是一个保留字,需要加括号来处理,即[TIME]