Q:

How to have Query Pull Weekly Data

I have a a query like so that ONLY shows data for the specific day.  But how can I modify this to show data for the previous 7 days? So when I run the query this week show data for the date range of 
01/24/2014 - 01/30/2014 then next week shows data for 01/31/2014 - 02/06/2014
SELECT * FROM SalesInformation
WHERE (datename(dw, getdate()) = 'Monday' AND CONVERT(VARCHAR(10), DateSold, 101) = DATEADD   (Day,DATEDIFF(Day,0,GetDate()),0))
OR (datename(dw, getdate()) = 'Tuesday' AND CONVERT(VARCHAR(10), DateSold, 101) = DATEADD(Day,DATEDIFF(Day,0,GetDate()),0))
OR (datename(dw, getdate()) = 'Wednesday' AND CONVERT(VARCHAR(10), DateSold, 101) = DATEADD(Day,DATEDIFF(Day,0,GetDate()),0))
OR (datename(dw, getdate()) = 'Thursday' AND CONVERT(VARCHAR(10), DateSold, 101) = DATEADD(Day,DATEDIFF(Day,0,GetDate()),0))
OR (datename(dw, getdate()) = 'Friday' AND CONVERT(VARCHAR(10), DateSold, 101) = DATEADD(Day,DATEDIFF(Day,0,GetDate()),0))

A:

This will be seven days including time.  So 01/23/2014 10:06 AM to 1/30/2014 10:06 AM.  If you want the whole day of 01/23, cast to a DATE.
Here is a complete working example for 2012.  I changed to getdate() just in case you are using a older version of the engine.
-- Just playing
use tempdb;
go

-- drop existing
if object_id ('sales') > 0
drop table sales
go

-- create new
create table sales
(
  id int identity (1,1) primary key,
  sold smalldatetime,
  amt smallmoney
);
go

-- clear data
truncate table sales;
go

-- insert data
declare @dte date = '20131231';
declare @amt int;
while (@dte < '20140201')
begin
  set @amt = floor(rand(checksum(newid())) * 50000);
  set @dte = dateadd(d, 1, @dte);
  insert into sales values (@dte, @amt);
end
go

-- Show 7 * 24 hrs worth of data
select * 
from sales
where
  sold >= dateadd(d, -7, getdate()) and
  sold < getdate()
go

Check out Aarons Blog on dates.  It goes over the good, bad, and ugly practices.  For instance, do not use BETWEEN.

Bad habits to kick : mis-handling date / range queries

