ajetrumpet
09-21-2008, 12:32 PM
With the following SQL statements, you can query previous time periods within your database (given the fact that you have a date field(s) in the table(s) that you are querying.
Current Week to DateSELECT Table.DateField
FROM Table
WHERE [Table.DateField] BETWEEN
DateAdd("d", -((Weekday(Date()) - 1)), Date()) AND
Date();
Current Month to DateSELECT Table.DateField
FROM Table
WHERE (((Table.DateField) BETWEEN
DatePart("m",Date()) & "/1/" & DatePart("yyyy",Date()) AND
Date()));
Current Year to DateSELECT Table.DateField
FROM Table
WHERE (((Table.DateField) BETWEEN
"1/1/" & DatePart("yyyy",Date()) AND
Date()));
Previous MonthsPARAMETERS [Number of Previous Months to Query] Short;
SELECT Table.DateField
FROM Table
WHERE [Table.DateField] BETWEEN
DateAdd("m", -[Number of Previous Months to Query],
DatePart("m", Date()) & "/1/" & DatePart("yyyy", Date())) AND
DateAdd("d", -1,
DatePart("m", Date()) & "/1/" & DatePart("yyyy", Date()));
Previous Weeks (using "DAYS" parameter)PARAMETERS [Number of Previous Weeks to Query] Short;
SELECT Table.DateField
FROM Table
WHERE [Table.DateField] BETWEEN
DateAdd("d", (-[Number of Previous Weeks to Query] * 7),
DateAdd("d", -((Weekday(Date()) - 1)), Date())) AND
DateAdd("d", (([Number of Previous Weeks to Query] * 7) - 1),
DateAdd("d", (-[Number of Previous Weeks to Query] * 7),
DateAdd("d", -((Weekday(Date()) - 1)), Date())));
Previous Weeks (using "WEEKS" parameter)PARAMETERS [Number of Previous Weeks to Query] Short;
SELECT Table.DateField
FROM Table
WHERE [Table.DateField] BETWEEN
DateAdd("ww", -[Number of Previous Weeks to Query],
DateAdd("d", -((Weekday(Date()) - 1)), Date())) AND
DateAdd("ww", [Number of Previous Weeks to Query],
DateAdd("ww", -[Number of Previous Weeks to Query],
DateAdd("d", -(Weekday(Date())), Date())));
Previous YearsPARAMETERS [Number of Previous Years to Query] Short;
SELECT Table.DateField
FROM Table
WHERE [Table.DateField] BETWEEN
DateAdd("yyyy", -[Number of Previous Years to Query],
"1/1/" & DatePart("yyyy", Date())) AND
"12/31/" & DatePart("yyyy", DateAdd("yyyy", -1, Date()));
Current Week to DateSELECT Table.DateField
FROM Table
WHERE [Table.DateField] BETWEEN
DateAdd("d", -((Weekday(Date()) - 1)), Date()) AND
Date();
Current Month to DateSELECT Table.DateField
FROM Table
WHERE (((Table.DateField) BETWEEN
DatePart("m",Date()) & "/1/" & DatePart("yyyy",Date()) AND
Date()));
Current Year to DateSELECT Table.DateField
FROM Table
WHERE (((Table.DateField) BETWEEN
"1/1/" & DatePart("yyyy",Date()) AND
Date()));
Previous MonthsPARAMETERS [Number of Previous Months to Query] Short;
SELECT Table.DateField
FROM Table
WHERE [Table.DateField] BETWEEN
DateAdd("m", -[Number of Previous Months to Query],
DatePart("m", Date()) & "/1/" & DatePart("yyyy", Date())) AND
DateAdd("d", -1,
DatePart("m", Date()) & "/1/" & DatePart("yyyy", Date()));
Previous Weeks (using "DAYS" parameter)PARAMETERS [Number of Previous Weeks to Query] Short;
SELECT Table.DateField
FROM Table
WHERE [Table.DateField] BETWEEN
DateAdd("d", (-[Number of Previous Weeks to Query] * 7),
DateAdd("d", -((Weekday(Date()) - 1)), Date())) AND
DateAdd("d", (([Number of Previous Weeks to Query] * 7) - 1),
DateAdd("d", (-[Number of Previous Weeks to Query] * 7),
DateAdd("d", -((Weekday(Date()) - 1)), Date())));
Previous Weeks (using "WEEKS" parameter)PARAMETERS [Number of Previous Weeks to Query] Short;
SELECT Table.DateField
FROM Table
WHERE [Table.DateField] BETWEEN
DateAdd("ww", -[Number of Previous Weeks to Query],
DateAdd("d", -((Weekday(Date()) - 1)), Date())) AND
DateAdd("ww", [Number of Previous Weeks to Query],
DateAdd("ww", -[Number of Previous Weeks to Query],
DateAdd("d", -(Weekday(Date())), Date())));
Previous YearsPARAMETERS [Number of Previous Years to Query] Short;
SELECT Table.DateField
FROM Table
WHERE [Table.DateField] BETWEEN
DateAdd("yyyy", -[Number of Previous Years to Query],
"1/1/" & DatePart("yyyy", Date())) AND
"12/31/" & DatePart("yyyy", DateAdd("yyyy", -1, Date()));