Функция ДобавитьКДате позволяет произвести выборку данных, за период отталкиваясь от одного значения даты на определенное количество единиц времени.
В синтаксисе языка аналог — функция ДобавитьМесяц, для остальных значений даты расчет всегда производится посекундно: Дата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
То ее можно соединить с календарем и для каждой даты получить дату со временем, использовав вот такую конструкцию:
ДобавитьКДате(_КалендарьГрафиков.Дата,ЧАС,Часы.Номер) как ДатаСоВременем
Реклама – это не выигрывание призов Эффи и Золотых Львов. Это зарабатывание денег рекламодателям.