SQL查询中的Date语法错误

时间:2014-02-17 06:23:03

标签: sql vb.net

在我的程序中,我将日期从DateTimePicker保存到全局变量中 My.Settings.date = dtpDate_do.Value.Date。我正在使用此日期来比较我的数据库中的日期,但无论我正在改变什么,我总是会遇到语法错误。 这是我的疑问:

cmd.CommandText = "SELECT ID, order_date FROM orders WHERE order_date = " & My.Settings.date & " ORDER BY ID DESC" 


我的数据库中的日期以欧盟格式存储,带点 - 17.2.2014。任何人都可以给我一些帮助。

2 个答案:

答案 0 :(得分:1)

永远不要像那样创建你的查询。始终没有任何异常使用参数。这样可以避免SQL注入,并确保正确格式化参数。

很抱歉不了解VB.NET,但它应该与此类似:

cmd.CommandText = "SELECT ID, order_date FROM orders WHERE order_date = @Date ORDER BY ID DESC" 
cmd.Parameters.AddWithValue("@Date", My.Settings.data)

说明:使用@ParamName作为参数的占位符创建查询。然后用值替换参数。确保应用具体类型的值(即不是对象)或/并提供数据类型。

答案 1 :(得分:0)

尝试在查询中使用如下参数:

cmd.CommandText = "SELECT ID, order_date FROM orders WHERE order_date = @date ORDER BY ID DESC";
cmd.Parameters.Add(new SqlParameter("@date", dateTimePicker.Value.Date));