查询具有偏离给定日期的日期的记录

时间:2011-07-11 08:02:53

标签: sql ms-access

考虑我的日期为29/03/2011。  我想查询此日期后一天,5天和10天的记录。

比如说,样本字段是F1,F2,F3;

我的代码就像这样

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

我正在使用MS Access 2007,我无法理解如何查询具有偏移量的日期。

我修改了DateAdd()但是给了我一个错误。 想有一个解决方案。

Soham

1 个答案:

答案 0 :(得分: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