Off the top of my head, I'd say use the
DATE_SUB(date,INTERVAL expression type) Function (see
manual page
http://www.mysql.com/doc/en/Date_and_time_functions.html
for details)
For example:
SELECT * FROM myTable WHERE date_field >=
DATE_SUB('2003-10-19', INTERVAL 7 DAY);
To get the records for the past 7 days from the
current day, use the NOW() function:
SELECT * FROM myTable WHERE date_field >=
DATE_SUB(NOW(), INTERVAL 7 DAY)
This assumes your date_field is of type DATE. If it is
of type DATETIME, you will need to consider if you
want records that are exactly within a 1 week time
frame (i.e. to the minute) or within a 1 week time
frame based on the day.
For example, if the current time is 2003-10-19 19:25
and you use this syntax:
SELECT * FROM myTable WHERE date_field >=
DATE_SUB(NOW(), INTERVAL 7 DAY)
A record with a datetime of "2003-10-12 19:00:00" is
NOT returned since it is older (by 25 minutes) than 7
days. However, if you change the syntax to limit the
calculation to year, month and day, such as:
SELECT * FROM myTable WHERE date_field >=
DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 7 DAY),
'%Y-%m-%d')
All records from "2003-10-12 00:00:00", including the
one from "2003-10-12 19:00:00" is returned.
I haven't used date & time functions extensively so
there may be a more elegant way that I am not familiar
with. If so, someone else, please chime in.
-Mark
--- Developer <[EMAIL PROTECTED]> wrote:
>
> How can I pull all records within a 1 week time
> frame? So if I enter
> 2003-10-19, how can I write a query that will get
> all records from
> 2003-10-12 - 2003-10-19.
>
> Thanks in advance.
>
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
>
http://lists.mysql.com/[EMAIL PROTECTED]
>
__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]