Don't convert to a string to subtract or add to times, use:
datediff("h",-4,{MyTable.MyDateTime})
To get the past weeks data only, modify the record selection criteria, as in:
What does the following mean?:
"use a formula to capture all instances from today for one week"
Why do you need a formula? And is it truly from today for one week, or is it the past week?
You can limit rows in the report (and use this same logic as criteria for formulas if you really need to). Use Report->Edit Selection Formula->Record, and place something akin to one of the following in there:
For the next week:
{MyTable.MyDateTime} >= currentdate+7
For the past week:
{MyTable.MyDateTime} >= currentdate-7
-k
kai@informeddatadecisions.com