К статьям

Функции для работы с датами в языке запросов

3 мин


Для работы со значениями типа ДАТАВРЕМЯ в системе представлен целый ряд функций и операторов.

Для всех примеров поле Дата = 31.12.2021 23:59:00

Выделение частей даты:

Для выделения частей даты представлены следующие функции:

Год

ГОД(<Дата>) - возвращает значение года даты

Возвращаемое значение: Число

Пример:

ГОД(Дата) // Результат - 2021

Квартал

КВАРТАЛ(<Дата>) - возвращает номер квартала даты

Возвращаемое значение: Число

Пример:

КВАРТАЛ(Дата) // Результат - 4

Месяц

МЕСЯЦ(<Дата>) - возвращает номер месяца даты

Возвращаемое значение: Число

Пример:

МЕСЯЦ(Дата) // Результат - 12

ДеньГода

ДЕНЬГОДА(<Дата>) - возвращает порядковый номер дня в году для указанной даты 

Возвращаемое значение: Число

Пример:

ДЕНЬГОДА(Дата) // Результат - 365

День

ДЕНЬ(<Дата>) - возвращает значение дня даты

Возвращаемое значение: Число

Пример:

ДЕНЬ(Дата) // Результат - 1

Неделя

НЕДЕЛЯ(<Дата>) - возвращает порядковый номер недели в году для указанной даты

Возвращаемое значение: Число

Пример:

НЕДЕЛЯ(Дата) // Результат - 53

День недели

ДЕНЬНЕДЕЛИ(<Дата>) - возвращает порядковый номер дня недели для указанной даты

Возвращаемое значение: Число

Пример:

ДЕНЬНЕДЕЛИ(Дата) // Результат - 5

Час

ЧАС(<Дата>) - возвращает значение часа даты

Возвращаемое значение: Число

Пример:

ЧАС(Дата) // Результат - 23

Минута

МИНУТА(<Дата>) - возвращает значение минуты даты

Возвращаемое значение: Число

Пример:

МИНУТА(Дата) // Результат - 59

Секунда

СЕКУНДА(<Дата>) - возвращает значение секунды даты

Возвращаемое значение: Число

Пример:

СЕКУНДА(Дата) // Результат - 0

Другие функции работы с датами

Также существуют и другие функции для работы с датами:

ДатаВремя

ДАТАВРЕМЯ(<Год>, <Месяц>, <День>, <Час>, <Минута>, <Секунда>) - Возвращает значение типа ДатаВремя, по указанным параметрам. Обязательными являются только параметры Год, Месяц, День, если не заполнить остальные то они заполнятся нулями.

Возвращаемое значение: ДатаВремя

Пример:

ДАТАВРЕМЯ(2021, 12, 31) // Результат 31.12.2021 00:00:00

НачалоПериода

НАЧАЛОПЕРИОДА(<Дата>,<Период>) - возвращает для указанной даты начало периода в который она входит

Возвращаемое значение: ДатаВремя

Параметр <Период> может принимать следующие значения: ГОД, ПОЛУГОДИЕ, ДЕКАДА, КВАРТАЛ, МЕСЯЦ, ДЕНЬ, НЕДЕЛЯ, ЧАС, МИНУТА.

Пример, указав в качестве периода "Месяц", получаем начало месяца:

НАЧАЛОПЕРИОДА(Дата, Месяц) // Результат 01.12.2021 00:00:00

КонецПериода

КОНЕЦПЕРИОДА(<Дата>, <Период>) - возвращает для указанной даты конец периода в который она входит

Возвращаемое значение: ДатаВремя

Параметр <Период> может принимать следующие значения: ГОД, ПОЛУГОДИЕ, ДЕКАДА, КВАРТАЛ, МЕСЯЦ, ДЕНЬ, НЕДЕЛЯ, ЧАС, МИНУТА.

Пример, для периода "День" получаем конец дня:

КОНЕЦПЕРИОДА(Дата, День) // Результат 31.12.2021 23:59:59

 

ДобавитьКДате

ДОБАВИТЬКДАТЕ(<Дата>, <Тип>, <Количество>) - добавляет к дате указанное количество временных интервалов

Параметр <Тип> в функции может принимать значения: ГОД, КВАРТАЛ, ДЕКАДА, ПОЛУГОДИЕ, МЕСЯЦ, ДЕНЬ, ЧАС, МИНУТА, СЕКУНДА

Возвращаемое значение: ДатаВремя

Пример, в качестве временного интервала указан "День", и количество 1:

ДОБАВИТЬКДАТЕ(Дата, День, 1) // Результат 01.01.2022 23:59:00

 

РазностьДат

РАЗНОСТЬДАТ(<ПерваяДата>, <ВтораяДата>, <Тип>) - рассчитывает календарную разницу между двумя датами, в виде количества единиц измерения переданных в параметр Период.

Параметр <Тип> в функции РАЗНОСТЬДАТ может принимать значения: ГОД, КВАРТАЛ, МЕСЯЦ, ДЕНЬ, ЧАС, МИНУТА, СЕКУНДА

Возвращаемое значение: Число

Пример, вычисляем разность в днях между датами:
Условимся, что Дата101.01.2022 23:59:00

РАЗНОСТЬДАТ(Дата, Дата1, День) // Результат - 1

Полный пример использования: 

 ВЫБРАТЬ ПЕРВЫЕ 1

    ПоступлениеТоваровУслуг.Дата КАК Дата,

    НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслуг.Дата, МЕСЯЦ) КАК НачалоМесяца,

    ДЕНЬ(ПоступлениеТоваровУслуг.Дата) КАК ДеньИзДаты,

    МЕСЯЦ(ПоступлениеТоваровУслуг.Дата) КАК МесяцИзДаты

ИЗ

    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг 

Результатом будет:
таблица из одной строки, так как мы указали выражение ПЕРВЫЕ 1 

Дата НачалоМесяца ДеньИзДаты МесяцИзДаты
13.05.2022 9:51:06 01.05.2022 0:00:00 13 5

 

 

Задачи на эту тему: