如何从数据库中选择日期?

时间:2015-08-06 22:04:48

标签: ms-access

用户将输入日期,例如“2015年7月1日”。然后我将检查数据库并返回一些匹配的结果。请注意,数据库中有日期/时间,但用户只能输入日期。

下面我在Access中设置了以下数据库,col“StartBy”类型是日期/时间

Table = "workStartTable"
|----|------------------------|
| ID | StartBy                |
|----|------------------------|
| 1  | 7/1/2015 2:30:00 PM    |
| 2  | 1/22/2013 8:00:00 AM   |
| 3  | 10/22/2014 10:25:00 AM |
| 4  | 4/5/2010 5:00:00 PM    |
| 5  | 7/3/2015               |
|----|------------------------|

我创建了以下查询哪种工作。以下查询将起作用,因为数据库(2015年7月3日)没有时间记录此记录,但“07/01/2015”将无效,因为“07/01/2015”有时间。

Dim query As String = "SELECT DISTINCT * FROM workStartTable WHERE StartBy = #" & "07/03/2015" & "#;"

请注意我已尝试过以下查询,但不会返回任何结果:

Dim query As String = "SELECT DISTINCT * FROM workStartTable WHERE StartBy = " & "07/03/2015" & ";"
Dim query As String = "SELECT DISTINCT * FROM workStartTable WHERE StartBy LIKE % " & "07/03/2015" & " %;"
Dim query As String = "SELECT DISTINCT * FROM workStartTable WHERE StartBy LIKE " & "07/03/2015" & " %;"

1 个答案:

答案 0 :(得分:2)

尝试使用DateValue功能:DateValue(StartBy)

SELECT DISTINCT * FROM workStartTable WHERE DateValue(StartBy) = #2015-07-03#;

正如Gord Thompson在评论中指出的那样,一个可能性能更好的选择是使用:

WHERE StartBy >= #2015-07-03# AND StartBy < #2015-07-04#

这将使时间部分无关紧要。