我在Access数据库表中有一堆带有日期时间字段
的记录例如记录(2/2/2015 3:34:21 PM,2/2/2015 8:29:13 AM)
问题是我需要运行一个查询,我需要显示的所有记录都是在同一天发生的记录,而不管时间。如何最好地构建此查询?
我在表中选择了*,其中时间= 2/2 / 2015'并且没有返回结果。我将日期格式切换为年份,没有运气。
有关Access的SQL查询语法的任何提示将不胜感激。感谢。
答案 0 :(得分:1)
Access中的日期/时间值始终具有日期和时间组件,因此2015-02-02
等日期文字等同于2015-02-02 00:00:00
。如果您想要该日期的所有行,无论何时,您都需要使用WHERE子句,如
... WHERE thetime >= {that date} AND thetime < {the following day}
在VB.NET中执行此操作的正确方法是使用如下参数化查询:
Using cmd As New OleDbCommand()
cmd.Connection = con ' an open OleDbConnection
cmd.CommandText =
"SELECT * FROM thetable " &
"WHERE thetime >= ? AND thetime < ?"
Dim targetDate As New DateTime(2015, 2, 2) ' example data
cmd.Parameters.Add("?", OleDbType.DBTimeStamp).Value = targetDate
cmd.Parameters.Add("?", OleDbType.DBTimeStamp).Value = targetDate.AddDays(1)
Using rdr As OleDbDataReader = cmd.ExecuteReader
Do While rdr.Read()
Console.WriteLine(rdr("thetime"))
Loop
End Using
End Using