Справочная информация: я отвечаю за создание экстрактов базы данных с использованием данных.У нас есть данные за пять лет с CreatedDt (тип данных даты).В запросе на экспорт мне нужно добавить предложение BETWEEN для CreatedDt.Поскольку задание обработки данных обобщено и параметризовано, мне нужно рассчитать даты в последовательности.
Например: Select * from tableA where CreatedDt BETWEEN <<start Date>> and <<End Date>>
Для одного из этих запросов мне нужно вернуться назад на четыремесяцев и получить 3 месяца данных (пропуская предыдущий месяц сейчас).Например:
Предполагая сегодняшнюю дату: 02/22/2019
Мне нужно:
Start Date: 10/01/2018
End Date: 12/31/2018
(в основном, пропустить месяц назад и перейти на три месяца)
Я знаю, это означает, что используются следующие расчеты:
- Вычесть из "Сегодня" (дважды)
- Перейти к началу месяца (для даты начала)
- Перейти к последнему дню месяца (для даты окончания)
Я работаю с этой формулой:
OConv(Iconv(Date(),"D/YMD[4,2,2]") + 1), "D/YMD[4,2,2]")
Из того, что я понимаю '+1'представляет сложение / вычитание по дням.используя ранее упомянутую проблему вычисления.
Я пытался:
OConv(Iconv(Date(),"D/YM[4,2]") + 1), "D/YMD[4,2,2]")
Думая, что я был +1 в месяц, но это закончилось годами далеко от моей целевой точки.
Мне нужно знать, как выполнять нужные мне операции в определенный день.Или, если есть другой способ, я более чем открыт.
Спасибо