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函数,但我无法找出什么是错的。

非常感谢任何帮助。

DATEADD函数用于Azure数据库

您的代码:

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.TextTextBox2_ToDate变量

理论上,您将TextBox连接到您的字符串(这将是System.Web.UI.WebControls.TextBox,而不是Text属性的实际值)。

TextBox2_toDate.Text << .Text 
但在实践中,您应该将其作为参数绑定,而不是直接连接,原因有很多,包括:
  • 如果日期没有以兼容的格式输入?
  • Sql注入攻击漏洞

还要注意TIME是一个保留字,需要加括号来处理,即[TIME]