一个访问查询,将日期字段中的时间部分与表单中输入的值进行比较

时间:2016-10-06 18:23:46

标签: date ms-access

我在名为start_time的日期/时间列上有一个带谓词(条件)的访问查询。条件在两个表单字段中定义,使用"格式"作为"短时间"。问题是这个查询没有给出正确的结果。

SELECT event_cust.*
FROM event_cust
WHERE  Format([start_time],"hh:mm") 
BETWEEN [Forms]![CustEventRptForm]![FromHour] 
AND [Forms]![CustEventRptForm]![ToHour]

还尝试使用Format([start_time], "short time") BETWEEN ... - 也无效。

除上述代码外,我们还需要其他任何内容才能获得正确的结果吗?

我已经使用如下所示的文字值进行了测试,并且我得到了正确的结果。

SELECT event_cust.*
FROM event_cust
WHERE  Format([start_time],"hh:mm") BETWEEN '10:00' AND '13:00'

2 个答案:

答案 0 :(得分:1)

我的猜测是它没有正确地解释表格中的值。

尝试在值之前和之后添加引号:

SELECT event_cust.* 
FROM event_cust 
WHERE Format([start_time],"hh:mm") Between "" & [Forms]![CustEventRptForm]![FromHour] & "" 
   And "" & [Forms]![CustEventRptForm]![ToHour] & ""

答案 1 :(得分:0)

不要使用字符串比较日期/时间。

EF Core