Sql 如何使用select查询选择月()和年()
基本上,我想运行一个查询,将输入的数据拉入VB表单(特别是月份和年份) 这就是我目前拥有的:Sql 如何使用select查询选择月()和年(),sql,vb.net,ms-access,Sql,Vb.net,Ms Access,基本上,我想运行一个查询,将输入的数据拉入VB表单(特别是月份和年份) 这就是我目前拥有的: SELECT * FROM orders WHERE MONTH(date_ordered) = ? AND YEAR(date_ordered) = ? ; 当我在数据库中运行它时,它不起作用。我没有结果 但是,如果我这样说: SELECT * FROM orders WHERE MONTH(date_ordered) = 08 AND YEAR(date_ordered) = 1989; 它工作
SELECT * FROM orders WHERE MONTH(date_ordered) = ? AND YEAR(date_ordered) = ? ;
当我在数据库中运行它时,它不起作用。我没有结果
但是,如果我这样说:
SELECT * FROM orders WHERE MONTH(date_ordered) = 08 AND YEAR(date_ordered) = 1989;
它工作得很好,达到了预期的效果。显然,由于我使用的表单是用户自己输入“月”和“年”,这使得事情有点棘手
我错过了什么?为任何想法干杯
注意:date_ordered字段是一个短日期格式的日期/时间字段。这可能会对您有所帮助
Dim sql As String = "SELECT * FROM orders WHERE MONTH(date_ordered) = @mon and YEAR(date_ordered) = @year"
Using cn As New SqlConnection("Your connection string here"), _
cmd As New SqlCommand(sql, cn)
cmd.Parameters.Add("@mon", SqlDbType.VarChar, 50).Value = textBox1.text
cmd.Parameters.Add("@year", SqlDbType.VarChar, 50).Value = textBox2.text
Return cmd.ExecuteScalar().ToString()
End Using
决定你使用的是什么数据库,并适当地标记你的问题。因为这两种产品有不同的方法来做到这一点…道歉;意外!正在对MS Access数据库使用SQL查询。我看不出您的问题。假设您有一个名为textBoxMonth的月份文本框,那么您的sql将是“SELECT*from orders,其中month(date_ordered)=”+textBoxMonth.text但使用参数当然会更安全