• This code is language-independent

    Select CHARINDEX(SUBSTRING('SAT',1,3), 'SUNMONTUEWEDTHUFRISAT') / 3 + 1

    while DATEPART() is language dependent. Mixing them may be dangerous. Consider using language dependent code instead

    select wdn

    from (

    select

    wdn = datepart(dw,dateadd(d,n,'20010101')), -- any date will do

    wds = left(datename(weekday,dateadd(d,n,'20010101')),3) --the same date

    from (values (1),(2),(3),(4),(5),(6),(7)) as t(n)

    ) as t

    where wds='sat'