• No need to change DATEFIRST, create intermediate variables, or a WHILE loop :w00t:.

    Just a bit of arithmetic to work out the offset from the first of the month to the first Saturday, using @@DATEFIRST to normalize the day of the week.

    SELECT firstsaturday = DATEADD(dd,(7 - (DATEPART(dw,DATEADD(month,DATEDIFF(mm,0,getdate()),0)) + @@DATEFIRST) % 7) % 7,DATEADD(month,DATEDIFF(mm,0,getdate()),0))

    If anyone needs further explanation I'll try and get back to you later.

    Hope this helps

    Nigel