monthsend — функция скриптa и диаграммы
Эта функция возвращает значение, соответствующее метке времени последней миллисекунды месяца, двухмесячного периода, квартала, триместра или полугодия, содержащих базовую дату. Также можно найти метку времени для предыдущего или последующего временного периода.
Синтаксис:
MonthsEnd(n_months, date[, period_no [, first_month_of_year]])
Возвращаемые типы данных: двойное значение
Аргументы:
В этих примерах используется формат даты DD/MM/YYYY. Формат даты указан в операторе SET DateFormat в верхней части скрипта загрузки данных. Измените формат в примерах согласно своим пожеланиям.
Пример | Результат |
---|---|
monthsend(4, '19/07/2013') | Возвращает 31/08/2013. |
monthsend(4, '19/10/2013', -1) | Возвращает 31/08/2013. |
monthsend(4, '19/10/2013', 0, 2) | Возвращает 31/01/2014. Поскольку началом года становится месяц 2. |
Пример:
Добавьте образец скрипта в свое приложение и запустите. Чтобы увидеть результаты, добавьте поля, перечисленные в столбце результатов, в лист приложения.
В этом примере выполняется обнаружение окончания последнего дня двухмесячного периода для каждой даты счета, смещенного вперед на один двухмесячный период.
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().
InvDate | BiMthsEnd |
---|---|
28/03/2012 | 30/06/2012 |
10/12/2012 | 28/02/2013 |
5/2/2013 | 30/04/2013 |
31/3/2013 | 30/04/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 |