如何找到具有日期范围的字段?

时间:2019-05-21 06:12:57

标签: sql vb.net

因此,我尝试选择具有特定日期范围ex的记录。 5/21/2019-5/30/2019并将记录放入datagridview。

我正在使用Access女士,而且我对SQL并不了解很多。

DA = New OleDb.OleDbDataAdapter("SELECT * FROM table where date >= " & DateValue(FirstDate) & " AND date <= " & DateValue(SecondDate) & "", conn)  
DS = New DataSet
DS.Clear()
DA.Fill(DS, "table")
DataGridView1.DataSource = DS.Tables("table")

它没有给我错误信息,但是datagridview没有显示任何内容。感谢您的答复

3 个答案:

答案 0 :(得分:0)

在MS Access中,日期定界符是井号(#)。

因此必须将查询更改为:

"SELECT * FROM table where date >= #" & DateValue(FirstDate) & "# AND date <= #" & DateValue(SecondDate) & "#"

或者您使用“ between”运算符:

"Select * FROM table WHERE [Date] Between #" & DateValue(FirstDate) & "# and #" & DateValue(SecondDate) & "#";

答案 1 :(得分:0)

一种更好的处理方法是简单地使用许多程序员通常推荐的参数。

    da = New OleDb.OleDbDataAdapter("SELECT * FROM table where date >= @StartDate AND date <= @EndeDate ", conn)
    'If you show how you declare and set FirstDate and SecondDate we can drop the DateValue function'
    da.SelectCommand.Parameters.Add("@StartDate", OleDb.OleDbType.Date).Value = DateValue(FirstDate)
    da.SelectCommand.Parameters.Add("@EndeDate", OleDb.OleDbType.Date).Value = DateValue(SecondDate)
    ds = New DataSet
    DS.Clear()
    DA.Fill(DS, "table")
    DataGridView1.DataSource = DS.Tables("table")

答案 2 :(得分:-1)

选择ID FROMTestInfo “ 2012-03-27”和“ 2012-03-28”之间的CapturedDate