Функция ДобавитьКДате позволяет произвести выборку данных, за период отталкиваясь от одного значения даты на определенное количество единиц времени.

В синтаксисе языка аналог — функция ДобавитьМесяц, для остальных значений даты расчет всегда производится посекундно:  Дата1 = Дата2+24*3600*7.

В запросе же добавить период к значению можно гораздо гибче используя всего одну функцию.

Синтаксис функции

ДОБАВИТЬКДАТЕ(<НачальнаяДата>, <ЕдиницаВремени>, <Сдвиг>)

Начальная дата может быть:

  • выбрана как поле из данных, например дата документа
  • получена функциями запроса ДатаВремя(),НачалоПериода()
  • являться параметром запроса, например &Период

Не хватает только функции ТекущаяДата() в запросе

Единицы времени:

         Секунда, Минута, Час, День, Неделя, Декада, Месяц,Квартал, Полугодие, Год

Сдвиг

Приводит к вычислению Сдвиг*ЕдиницаВремени

Положительное число  — увеличение периода

Отрицательно — уменьшение периода

Примеры запросов

Запрос, получающий дату на месяц раньше 01.10.2016

Выбрать
    ДобавитьКДате(ДатаВремя(2016,10,1),МЕСЯЦ,-1)

На 3 месяца позже:

Выбрать
    ДобавитьКДате(ДатаВремя(2016,10,1),МЕСЯЦ,3)

На 30 календарных дней раньше 

Выбрать
    ДобавитьКДате(ДатаВремя(2016,10,1),ДЕНЬ,-30)

12 часов дня

Выбрать
       ДобавитьКДате(ДатаВремя(2016,10,1),Секунда,12*3600), ДобавитьКДате(ДатаВремя(2016,10,1),ЧАС,12)

 

Особенность ДОБАВИТЬКДАТЕ

Возможно использовать значения другой таблицы для указания сдвига

Например, если есть таблица которая содержит номера часов:

Выбрать 1 как Номер

объединить все 

Выбрать 2

объединить все 

Выбрать 3

То ее можно соединить с календарем и для каждой даты получить дату со временем, использовав вот такую конструкцию:

ДобавитьКДате(_КалендарьГрафиков.Дата,ЧАС,Часы.Номер) как ДатаСоВременем

 

Реклама – это не выигрывание призов Эффи и Золотых Львов. Это зарабатывание денег рекламодателям.

— Серджио Займан