如何在我的表中的所有年份的两个日期(月和日)之间获取记录?

时间:2016-04-17 15:59:20

标签: sql ms-access

我尝试将记录放在我表格中的所有年份的两个日期(月和日)之间。 我的表包含50年的记录。

我可以这样做一年:

SELECT*
FROM  mytable
WHERE "Date"  BETWEEN {D '1700-05-01'} AND {D '1700-07-31'};

2 个答案:

答案 0 :(得分:2)

在标准SQL中:

SELECT *
FROM mytable
WHERE EXTRACT (month FROM "Date") BETWEEN 5 AND 7
AND EXTRACT (day FROM "Date") BETWEEN 1 AND 31;

根据您的RDBMS,可能会有更简单的答案。 请考虑将日期字段命名为"Date"以外的其他字段,通常是保留关键字。

修改:在MS Access中,使用EXTRACT功能代替DatePart

DatePart("m", "Date")
DatePart("d", "Date")

如果您唯一想要的是"所有年份的所有五月份",那么您可以忘记"每天提取"这个答案的一部分,每月只提取一次。

编辑: 18世纪前五十年中所包含的所有记录

SELECT *
FROM mytable
WHERE EXTRACT (year FROM "Date") BETWEEN 1701 AND 1750
AND EXTRACT (month FROM "Date") = 5;

了解到,在MS-Access中,EXTRACT (year FROM "Date")DatePart("yyyy", "Date")EXTRACT (month FROM "Date")DatePart("m", "Date"),您现在应该能够弄明白:)

答案 1 :(得分:0)

是的,你应该可以。必须相应地编辑语法,以便不是按月和日进行,而是仅在您想要的年份之间进行。如果您希望在特定年份进行,请仅指定所需年份的1月1日至12月31日。