【问题标题】:deletion of records using dates使用日期删除记录
【发布时间】:2013-02-06 18:36:20
【问题描述】:

我有一个作为 CostData 的表,其中我有一个作为 Month_year 的列,格式为 mm/dd/yyyy 现在我想根据日期删除数据。假设我给出的开始日期为 01/31/2012 和结束日期为 01/31/2013 它应该删除整个一年的记录。我必须在文本框中输入 start 和 endDate

("从 CostData 中删除 {0} 和 {1} 之间的 Month_year'", TextBox2.Text, TextBox1.Text)

这是我正在使用的查询,但它不起作用。 Month_year 是日期类型。

【问题讨论】:

  • Month_Year 是什么数据类型,在哪个 RDBMS 中?
  • 'm 使用 sql server 2008 并且 month_year 是日期类型
  • 您的查询没有问题——除非文本框的值是关闭的。请参阅此处:sqlfiddle.com/#!3/9717d/1 -- 您的 SQL 字符串在填充后会评估为什么?
  • 您遇到什么错误?如果我错了,请纠正我,{0} 是否适用于我认为@Month 的参数化查询
  • "我收到一个字符串错误,所以我不确定要使用什么 {0}0r ?? @spandy

标签: asp.net .net sql


【解决方案1】:

实际上,我认为您的问题在于您的 SQL 字符串。如果您发布了更多代码,我可以肯定地说,但我怀疑您在上面使用 String.Format 吗?如果是这样,只需将 {0} 和 {1} 括在撇号周围:

("Delete from CostData where Month_year between '{0}' and '{1}'", TextBox2.Text, TextBox1.Text)

请考虑使用参数化查询——这种方法容易受到 SQL 注入的攻击。

祝你好运。

【讨论】:

  • 不确定我是否在关注你——你看到我在上面的编辑中使用了确切的字符串吗?
  • 是的 :-) 你的仪式是字符串的错误。非常感谢你。它现在工作。 @sgeddes
  • @user1986144 -- 没问题,很高兴我们能提供帮助。话虽如此,请务必查看参数化查询,因为上述方法极易受到 SQL 注入的攻击。快速搜索以查看示例。祝你好运。
【解决方案2】:

我有点生疏,但我认为是这样的:

...where month(Month_year) => {0} and month(Month_year) <{1}

【讨论】:

  • 实际上我把它当作字符串,所以它必须是'{0}'和'{1}'
猜你喜欢
  • 2018-07-12
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2019-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多