MS Access SQL选择日期范围

时间:2013-04-03 14:29:42

标签: sql ms-access

我需要选择一个日期有日期的记录(范围:1998到1999)。我写了似乎有用的声明。为什么呢?

SELECT *
FROM Factory
WHERE 
(EXTRACT(YEAR FROM date) AS dyear) BETWEEN '1998'  AND '1999'

2 个答案:

答案 0 :(得分:3)

您可以使用YEAR()来获取该日期的年份。

SELECT *
FROM   Factory
WHERE  YEAR(date) BETWEEN 1998 AND 1999

答案 1 :(得分:1)

如果表中包含数千行,则Year()中每个行的应用Factory函数将是一个明显的性能挑战。 (实际上,对于较小的表也会是性能挑战,但在这种情况下你不太可能注意到命中。)更有效的方法是索引[date]字段并使用索引检索限制数据库引擎的工作量。

SELECT f.*
FROM Factory AS f
WHERE f.date >= #1998-1-1# AND f.date < #2000-1-1#;

尽可能设计查询以利用索引检索。这可以大大提高性能。作为一个简单的经验法则:索引检索=好;全表扫描=坏。尽可能避免全表扫描。