比较两个日期。平等不起作用

时间:2015-06-12 17:01:50

标签: sql date ms-access compare equals

我在比较两个日期时遇到了麻烦: 数据库中有短日期时间字段,由Microsoft Access 2002-2003数据扩展(#yyyy / mm / dd#)记录。当我试图通过运算符“大于”和“小于”进行比较时,它工作正常,但是当我用“等于”运算符替换它时,它给了我一个空的结果。以下是查询:

SELECT * FROM Logs WHERE (Date = #2015.06.11#) - 返回空结果,但

SELECT * FROM Logs WHERE (Date > #2015.06.10#) - 没问题。 我做错了什么?

2 个答案:

答案 0 :(得分:2)

日期/时间值#2015.06.11#包含时间组件, 12:00 AM

如果该日期的任何存储值包含 12:00 AM 以外的时间组件,则WHERE子句将排除这些值。

使用修改后的WHERE子句检索目标日期的所有行(无论一天中的哪个时间),并显示存储日期值的时间成分:

SELECT
    l.*, 
    Format(l.Date, 'h:nn ampm') AS time_component
FROM Logs AS l
WHERE l.Date >= #2015.06.11# AND l.Date < #2015.06.12#;

注意,对于我的系统区域设置,由于点分隔符,#2015.06.11#不会被识别为日期/时间值。但是,我认为格式对您的语言环境有效。如果有任何疑问,请尝试使用其他分隔符:#2015-06-11##2015/06/11#

答案 1 :(得分:0)

我认为你没有问题。您的表只包含该日期的条目。