我有以下查询
sql_query = "select * from bericht where fromtime = " & Me.von & " and b_date = #" & Me.l_date & "#"
它通过调试打印以下行。
select * from bericht where fromtime = 6 and b_date = #1/30/2020#
在表中b_date
是dateTime field
。(来自SQL Server Msaccess中的链接表)
该表中存在数据,1/30/2020 2:00:00 PM
其中where fromtime
也为6。
为什么查询没有返回任何数据?
msaccess不能在datetime字段中搜索日期?
PS:fromtime
是Intiger不是时间字段。
因为#1/30/2020#
<> 1/30/2020 2:00:00 PM
。
在进行比较之前,将列转换为日期,而不是日期时间。
... and DateValue(b_date) = #" & Me.l_date & "#"
这将返回该日期之后满足您其他条件的所有行。
有用。这意味着直到我使用DateValue,ms access才将我的值视为日期。
不,不是那样。在将日期与日期时间进行比较时,Access和我所知道的所有其他数据库都假定该日期的时间值为午夜。所以想要进行比较
1/30/2020 2:00:00 PM
来1/30/2020 12:00:00 AM
。这些是不同的值,因此没有匹配项。使用该DateValue
函数会删除表中值的时间,并仅比较日期,而忽略时间部分。