比较两个日期。平等也不起作用
comparing two dates. Equal isn't working as well
我在比较两个日期时遇到了问题:
数据库中有一个短日期时间字段,由Microsoft Access 2002-2003 数据扩展名(#yyyy/mm/dd#)记录。当我尝试通过运算符 "greater than" 和 "less than" 进行比较时,它工作正常,但是当我用运算符 "equal" 替换时,它给了我一个空的结果。以下是查询:
SELECT * FROM Logs WHERE (Date = #2015.06.11#)
- returns 一个空结果,但是
SELECT * FROM Logs WHERE (Date > #2015.06.10#)
- 没关系。
我做错了什么?
我认为你没有问题。您的 table 只是不包含该日期的条目。
Date/Time 值 #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# 由于点分隔符而未被识别为 Date/Time 值。但是,我认为该格式对您的语言环境有效。如果有任何疑问,请尝试使用不同的分隔符:#2015-06-11# 或 #2015/06/11#
我在比较两个日期时遇到了问题: 数据库中有一个短日期时间字段,由Microsoft Access 2002-2003 数据扩展名(#yyyy/mm/dd#)记录。当我尝试通过运算符 "greater than" 和 "less than" 进行比较时,它工作正常,但是当我用运算符 "equal" 替换时,它给了我一个空的结果。以下是查询:
SELECT * FROM Logs WHERE (Date = #2015.06.11#)
- returns 一个空结果,但是
SELECT * FROM Logs WHERE (Date > #2015.06.10#)
- 没关系。
我做错了什么?
我认为你没有问题。您的 table 只是不包含该日期的条目。
Date/Time 值 #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# 由于点分隔符而未被识别为 Date/Time 值。但是,我认为该格式对您的语言环境有效。如果有任何疑问,请尝试使用不同的分隔符:#2015-06-11# 或 #2015/06/11#