繁体   English   中英

用于在两个日期之间检索数据的SQL查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM