Спасибо всем за помощь!Я пошел со следующим:
SELECT
DATENAME(dw,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START]))) as Bucket_Start_Day,
CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START])) AS Bucket_Start,
CASE
WHEN
DATENAME(dw,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START]))) = 'Sunday' then
DATEADD(DD,2,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START])))
WHEN
DATENAME(dw,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START]))) = 'Monday' then
DATEADD(DD,1,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START])))
WHEN
DATENAME(dw,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START]))) = 'Tuesday' then
CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START]))
WHEN
DATENAME(dw,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START]))) = 'Wednesday' then
DATEADD(DD,6,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START])))
WHEN
DATENAME(dw,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START]))) = 'Thursday' then
DATEADD(DD,5,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START])))
WHEN
DATENAME(dw,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START]))) = 'Friday' then
DATEADD(DD,4,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START])))
WHEN
DATENAME(dw,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START]))) = 'Saturday' then
DATEADD(DD,4,CONVERT(DATETIME, convert(VARCHAR(10), [BUCKET_START])))
END AS '1st_Tuesday'
FROM [BUCKETS]
WHERE CAT_CODE = 1013
AND BUCKET_START < CONVERT(NVARCHAR, GETDATE(), 112)
AND BUCKET_END > CONVERT(NVARCHAR, GETDATE(), 112)
Это дает мне следующее:
Bucket_Start_Day Bucket_Start 1st_Tuesday
Sunday 2019-03-31 00:00:00.000 2019-04-02 00:00:00.000