Способ сделать это без оператора case / else:
CONCAT(Year(DATEADD(month, -6, GETDATE())), '/07/01')
Это вычитает 6 месяцев из текущей даты (DATEADD(month, -6, GETDATE())
), берет только год этой новой даты (Year(...)
) и добавляет /07/01
к концу (CONCAT(..., '/07/01')
).
Примеры:
SELECT CONCAT(Year(DATEADD(month, -6, '2017/06/30')), '/07/01');
выходы
2016/07/01
и
SELECT CONCAT(Year(DATEADD(month, -6, '2017/07/01')), '/07/01');
выходы 2017/07/01
Используется в контексте:
SELECT A.DATE
FROM TEST_TABLE A
WHERE A.DATE > CONCAT(Year(DATEADD(month, -6, GETDATE())), '/07/01');