2011-07-11 73 views
1

请考虑我的日期为29/03/2011。 我想在此日期后的一天,五天和十天查询记录。查询日期与指定日期的偏移量的记录

假设样本字段为F1,F2,F3;

我的代码是这样

SELECT F1,F2,F3 FROM T1 WHERE T1.Date = ... 

我使用MS Access 2007年,我无法理解如何查询,它是具有偏移的日期。

我已经修改并试验了DateAdd(),但给我一个错误。 想有解决办法。

Soham

回答

1

在Access中,您可以使用:

SELECT F1,F2,F3 
FROM T1 
WHERE T1.Date >= #2011-07-11# + 10 

为了证明这是10天,后来某一日期的所有记录。

或这显示所有记录与正好从某日起10日内:

SELECT F1,F2,F3 
FROM T1 
WHERE T1.Date = #2011-07-11# + 10 

有一个巨大的问题,但如果你的日期有一部分时间!以上不会在date = #2011-07-11 11:43#的地方抓到记录。它将仅匹配具有时间部分00:00:00的记录。所以它相当于:

SELECT F1,F2,F3 
FROM T1 
WHERE T1.Date = #2011-07-21 00:00:00# 

这可能不是你想要的。这是最好使用这样的:

SELECT F1,F2,F3 
FROM T1 
WHERE DateValue(T1.Date) = #2011-07-11# + 10 

或此,可以在Date领域使用索引,所以这是最好的办法:

SELECT F1,F2,F3 
FROM T1 
WHERE T1.Date >= #2011-07-11# + 10 
    AND T1.Date < #2011-07-11# + 11 
+0

虽然我没有需要之后开始日期的记录10天,但这个解决方案完美地解决了这个问题。非常感谢 – Soham

+0

@索姆:看到我的编辑细节,可能会给你错误后,很难赶上。 –

+1

最后一个更好,因为它会使用索引。 –