У меня есть бизнес в моей дате. Мне нужна дата изменения нижеУлучшение работы с SQL DataTime
за каждую дату до 25 каждого месяца я хочу получить 25 месяцев до и для каждой даты после 25 каждого месяца, я хочу получить 25 из того же месяца.
Пример:
для 2015/06/24 (или) 2015/06/06 мне нужно 2015/05/25
и 2015/06/25 (или 2015/06/30) Мне нужно 2015/06/25
Я пишу этот вопрос:
DECLARE @A DATE = '2015/06/01'
SELECT
(CASE WHEN DATEDIFF(MONTH, DATEADD(Day, -25, @A), @A) = 0
THEN DATEADD(DAY, 25, DATEADD(Day, -DAY(@A), @A))
ELSE DATEADD(DAY, 25, DATEADD(MONTH, -1, DATEADD(Day, -DAY(@A), @A)))
END)
Но я ищу лучшее решение.
Совет. Полезно отметить вопросы базы данных как с помощью соответствующего программного обеспечения (MySQL, Oracle, DB2, ...) и версии, например. 'SQL-сервер-2014'. Различия в синтаксисе и особенностях часто влияют на ответы (как отметил Амит). – HABO