Перейти к основному содержимому

monthsend — скрипт и функция диаграммы

Эта функция возвращает значение, соответствующее метке времени последней миллисекунды месяца, двухмесячного периода, квартала, четырехмесячного периода или полугодия, содержащих базовую дату. Также можно найти метку времени для предыдущего или последующего временного периода.

Синтаксис:  

MonthsEnd(n_months, date[, period_no [, first_month_of_year]])

Тип возврата данных: двойное значение

Аргументы:  

аргументы MonthsEnd
Аргумент Описание
n_months Число месяцев, обозначающее период. Целое число или выражение, определяемое по целому числу, которое должно быть одним из следующих значений: 1 (эквивалентно функции inmonth()), 2 (двухмесячный период), 3 (эквивалентно функции inquarter()), 4 (четырехмесячный период) или 6 (полугодие).
date Дата для вычисления.
period_no Период можно сместить, задав значение в поле period_no, целом числе или выражении, определяемом по целому числу, где 0 обозначает период, включающий значение, указанное в поле base_date. Отрицательные значения, заданные в поле period_no, означают предшествующие периоды, положительные — последующие.
first_month_of_year

Если необходимо работать с годами (финансовыми), которые начинаются не в январе, задайте значение от 2 до 12 в поле first_month_of_year.

Примеры и результаты:  

В этих примерах используется формат даты DD/ММ/YYYY. Формат даты указан в операторе SET DateFormat в верхней части скрипта загрузки. Измените формат в примерах согласно своим пожеланиям.

Пример 1:  

monthsend(4, '19/07/2013')

Возвращает 31/08/2013.

Пример 2:  

monthsend(4, '19/10/2013', -1)

Возвращает 31/08/2013.

Пример 3:  

monthsend(4, '19/10/2013', 0, 2)

Возвращает 31/01/2014.
Поскольку началом года становится месяц 2.

Пример 4:  

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

В этом примере выполняется обнаружение окончания последнего дня двухмесячного периода для каждой даты счета, смещенного вперед на один двухмесячный период.

TempTable:

LOAD RecNo() as InvID, * Inline [

InvDate

28/03/2012

10/12/2012

5/2/2013

31/3/2013

19/5/2013

15/9/2013

11/12/2013

2/3/2014

14/5/2014

13/6/2014

7/7/2014

4/8/2014

];

 

InvoiceData:

LOAD *,

MonthsEnd(2, InvDate, 1) AS BiMthsEnd

Resident TempTable;

Drop table TempTable;

Результирующая таблица содержит исходные даты и столбец с возвращенным значением функции MonthsEnd().

Результаты примера 4
InvDate BiMthsEnd
28/03/2012 30/06/2012
10/12/2012 28/02/2013
5/2/2013 30/04/2013
31/3/2013 30/06/2013
19/5/2013 31/08/2013
15/9/2013 31/12/2013
11/12/2013 28/02/2014
2/3/2014 30/06/2014
14/5/2014 31/08/2014
13/6/2014 31/08/2014
7/7/2014 31/10/2014
4/8/2014 31/10/2014

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!

Присоединяйтесь к программе модернизации аналитики

Remove banner from view

Модернизируйте ваши важные приложения QlikView без ущерба с помощью программы модернизации аналитики. Щелкните здесь для получения дополнительной информации или свяжитесь с нами: ampquestions@qlik.com