[英]SQL query to retrieve data between two dates
我写了以下代码:
Dim date1 As Date
Dim date2 As Date
date1 = Convert.ToDateTime(DatePickerFromDate.Text)
date2 = Convert.ToDateTime(DatePickerToDate.Text)
Dim cnd As New OleDbCommand("SELECT * FROM Sales WHERE Invoice_Date BETWEEN " + date1 + " AND " + date2 + "", om)
om.Open()
Dim da As OleDbDataReader = cnd.ExecuteReader
While da.Read()
ComboBox1.Items.Add(da(0))
End While
da.Close()
om.Close()
我想检索两个日期选择器中的两个日期之间的数据。
我试过BETWEEN,我也试过> = = <但是虽然数据库包含数据但结果是空的。 请在我出错的地方帮忙
您的代码可能会生成错误。 执行此类查询时,应在替换后存储查询字符串并将其打印出来。 你似乎在日期周围缺少分隔符。 所以这可能适用于您的具体情况。
New OleDbCommand("SELECT * FROM Sales WHERE Invoice_Date BETWEEN '" + date1 + "' AND '" + date2 + "'", om)
但是,您需要注意日期的格式。 应用程序层和数据库可能使用不同的格式。 如果要直接替换查询字符串,则使用格式YYYY-MM-DD - 它是ISO标准日期格式并且通常可以理解。
更好的方法是学习如何参数化查询,以便您可以将日期值作为日期参数传递。
如果你正在使用MS Access,这应该是语法...
SELECT * FROM Sales WHERE Invoice_Date>=#" + date1 + "# and Invoice_Date<=#" + date2 + "#"
如果您使用的是MS SQL Server或MySQL,那么请执行以下操作...
SELECT * FROM Sales WHERE Invoice_Date>='" + date1 + "' and Invoice_Date<='" + date2 + "'"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.