• Using Craig's setup, is this what you are looking for?

    declare @RunDate date;

    set @RunDate = '2014-07-22'

    select dateadd(week,datediff(week,0,dateadd(day,-1,@RunDate)),0)

    IF OBJECT_ID ('tempdb..#SampleData') IS NOT NULL

    DROP TABLE #SampleData

    CREATE TABLE #SampleData (PERSON INT ,dt DATETIME,[PAYTYPE] VARCHAR(20) ,[ID] INT)

    INSERT INTO #SampleData

    SELECT 12913,'07/21/2014','Regular',101

    UNION ALL SELECT 12913,'07/22/2014','Regular',102

    UNION ALL SELECT 12913,'07/23/2014','Regular',103

    UNION ALL SELECT 12913,'07/24/2014','Regular',104

    UNION ALL SELECT 12913,'07/25/2014','Regular',105

    UNION ALL SELECT 12913,'07/26/2014','Regular',104

    UNION ALL SELECT 12913,'07/27/2014','Regular',105

    UNION ALL SELECT 12913,'07/28/2014','Regular',101

    UNION ALL SELECT 12913,'07/29/2014','Regular',102

    UNION ALL SELECT 12913,'07/30/2014','Regular',103

    UNION ALL SELECT 12913,'07/31/2014','Regular',104

    UNION ALL SELECT 12913,'08/01/2014','Regular',105

    SELECT

    *

    FROM

    #SampleData

    WHERE

    dt >= dateadd(week,datediff(week,0,dateadd(day,-1,@RunDate)),0) and

    dt <= @RunDate

    ORDER BY

    PERSON,

    dt,

    ID;

    UPDATE #SampleData SET

    PAYTYPE = 'Regular2'

    OUTPUT

    deleted.PERSON,

    deleted.dt,

    deleted.PAYTYPE,

    deleted.ID

    INTO

    #SampleData

    WHERE

    PAYTYPE = 'Regular'

    AND dt >= dateadd(week,datediff(week,0,dateadd(day,-1,@RunDate)),0) and

    dt <= @RunDate;

    SELECT

    *

    FROM

    #SampleData

    ORDER BY

    PERSON,

    dt,

    ID;