Нужно найти и заменить текст в запросе - PullRequest
0 голосов
/ 22 апреля 2019

У меня очень длинный запрос с несколькими переменными даты, которые настроены на получение динамических диапазонов дат (предыдущий месяц, предыдущий день и т. Д.).

Это хорошо работает при продвижении вперед, но мне нужно сделать одноразовую историческую обратную засыпку отчетности, что означает, что мне нужно будет выполнить запрос за 20-40 предыдущих периодов времени.

Это очень длинный запрос, но он использует около 3 динамических переменных даты снова и снова.Я пытаюсь найти способ найти и заменить что-то вроде

DATEADD(month, DATEDIFF(month, -1, getdate()) - 2, 0)

на

'2019-02-01 00:00:00'

, но я не могупохоже, это делается в SSMS.

Я пытался копировать и вставлять в word, excel и т. д., но у меня возникла проблема с преобразованием моих прямых цитат в "умные цитаты".Я отключил настройки автоформатирования, которые влияют на это, но проблема все еще остается.

Есть ли лучший способ сделать это?Или я чего-то упускаю?

Я знаю, что общие операции "найти и заменить", как правило, не очень хорошая идея, но из-за структуры / разрешений БД и запросов это действительно лучшее / самое быстрое решение.

1 Ответ

0 голосов
/ 22 апреля 2019

это будет работать:

 CONVERT(VARCHAR(19), DATEADD(month, DATEDIFF(month, -1, getdate()) - 3, 0), 
 120)

чек http://sqlfiddle.com/#!18/9eecb/41922

...